2008 奥运趣味题
题目:
。。。。。
+2 0 0 8 5
。。。。。
句号分别表示从0到9的一位数字,而且不允许重复,并使得上面的加法表达式成立。
解:
/**
* @ClassName number
* @Description TODO
* @Author 张珂
* @Date 2019/7/7 14:37
* @Version 1.0
**/
public class number {
public static void main(String[] args) {
int iAdd, iSum, iAtemp, iStemp, iOk=0;
int iNumber[] = new int[10];
System.out.println("2008奥运趣味题的答案是:");
for ( iAdd = 1234; iAdd < 78680; iAdd++) {
iSum = iAdd + 20085;
iAtemp = iAdd;
iStemp = iSum;
for (int i = 0; i <= 4; i++) {
iNumber[i] = iAtemp%10;
iAtemp = iAtemp/10;
}//得到iAdd中的数字
if (iNumber[2] != 9) {
continue;
}
for (int j = 0; j <=4; j++) {
iNumber[j+5] = iStemp%10;
iStemp = iStemp/10;
}
boolean isSame = false;
for (int i = 0; i <= 8; i++) {
for (int j = i + 1; j <= 9; j++) {
if (iNumber[i] == iNumber[j]) {
isSame = true;
break;
}
}
if (true == isSame) {
break;
}
}
if (false == isSame) {
System.out.println(iAdd+"+"+"20085"+"="+iSum);
iOk++;
}
}
System.out.println("共有"+iOk+"组解.");
}
}
/*
解决思想为:
通过确定加法部分的数值,为1234——78680,进行循环运算
用数组,装入iAdd和iSum 的数字,判断是否有重复
没有重复——>进行输出
*/
输出:
2008奥运趣味题的答案是:
14982+20085=35067
27951+20085=48036
37941+20085=58026
41973+20085=62058
51963+20085=72048
64932+20085=85017
共有6组解.