将1-9分成三组,组成三个三位数,构成1:2:3的比例

问题描述:将1-9分成三组,组成三个三位数,使这三个数,构成1:2:3的比例
如192:384:576,找出这些数字

编译环境VC++6.0
代码有借鉴

/*
1、按照a:b:c=1:2:3的比例穷举所有数
2、将a,b,c的百位、十位、个位分别拆分储存到整形数组s[9]中;
3、判断数组s[9]有无重复数字、是否有数字0
4、输出结果
*/
#include 

int main()
{
	int a, b, c;						//令三个数分别为a:b:c
	int i, j, s[9];			
	for (a = 100; a < 333; a++)			//数值不能重复,a最大321
	{
		b = 2 * a, c = 3 * a;			//计算b、c的值
		s[0] = a / 100; s[1] = a % 100 / 10; s[2] = a % 10;  //分离a的百位、十位、个位。下同
		s[3] = b / 100; s[4] = b % 100 / 10; s[5] = b % 10;
		s[6] = c / 100; s[7] = c % 100 / 10; s[8] = c % 10;

		for (i = 0; i < 8; i++)			//判断是否有重复数字、是否有数字0
		{
			for (j = i + 1; j < 9; j++)
				if (s[i] == s[j]||s[i]==0||s[j]==0)break;	
			if (j < 9) break;
		}
		if (i == 8 && j == 9)			//无重复数字、也无0
			printf("a=%d,b=%d,c=%d\n", a, b, c);
	}
	return 0;
}

测试结果:
将1-9分成三组,组成三个三位数,构成1:2:3的比例_第1张图片

你可能感兴趣的:(二级C语言习题,1:2:3,三位数,C语言)