有三个非零数,用它们可能组合的所有三位数之和是2886,若把三个数字自大到小排和自小到大排成三位数,差为495。求三数字。

来源:互联网 发布:四大洋的面积最新数据 编辑:程序博客网 时间:2024/06/08 09:31

思路:首先我们设三个变量abc来表示这3个数字,由题意可知,三个数的组合共有2*3种(a*100+b*10+c   a*100+c*10+b   b*100+a*10+c    b*100+c*10+a    c*100+a*10+b    c*100+b*10+a)这6种组合的和==2886,整理可得 :222*a+222*b+222*c==2886   ,  等式两边同除以222,得a+b+c==13,又因为abc每个数不会超过9可以用循环穷举abc从1到9,

还需要将abc三个数的大小确定,我们这里就规定a是最小的,c是最大的,则a*100+b*10+c+495  ==  c*100+b*10+a

代码:

#include <stdio.h>main(){int a,b,c,i;for (a=1;a<10;a++)for (b=1;b<10;b++)for (c=1;c<10;c++){if (a+b+c==13&&222*a+222*b+222*c==2886&&a<b&&b<c&&a<c&&(495+a*100+b*10+c==c*100+b*10+a)){printf("%d,%d,%d\n",a,b,c);break;}}}


0 0
原创粉丝点击