2018年12月11日(星期二)  农历:戊戌年冬月初五

作者:三年。分类: JAVA

1333这个数字其实是比较特别的,什么情况下才有可能得出结尾是3的数字?
    4+9=13,5+8=13,6+7=13,7+6=13,8+5=13,9+4=13
    也就是说其实只有a和c的值相加等于13的情况下才可能等于1333,这样又可以得出下一个结论:
    既然a+c=13,那么100*a+100*c等于多少,显然是1300,这样又可以得到如下:
    abc+cba=100*a+100*c+a+c+20*b=1333,不难算出b的值肯定等于1,由此可以对程序做出如下优化:
    #include
    int print(void);
    int main(){
    print();
    return 0;
    }
    int print(){
    int a, b, c;
    for(a=4; a<10; a++){
    c = 13 - a;
    b = 1;
    int tmp = 101*a+20*b+101*c;
    if(tmp == 1333){
    printf("a=%d,b=%d,c=%d\n", a, b, c);
    }
    }
    return 0;
    }

    得到如下结果:
    ./test
    a=4,b=1,c=9
    a=5,b=1,c=8
    a=6,b=1,c=7
    a=7,b=1,c=6
    a=8,b=1,c=5
    a=9,b=1,c=4

    有兴趣的同学可以使用三个for循环看下得到的结果是否一致

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

已有 0/1343 人参与

发表评论:



手Q扫描加入Java初学者群