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

思路:首先我们设三个变量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;
				}
			}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值