2008奥运趣味题

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组解.

你可能感兴趣的:(2008奥运趣味题)