用1,2,3,…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。提示:不必太动脑筋。
根据题目要求,可以用到的最小的数(作为abc)是123,最大的数(作为ghi)是987,由最大数可以根据3个数的比例推算出最小数abc的上限为987÷3=329,因此最小数abc的范围是123~329
重点:题目要求1~9这9个数字每个只能出现一次,那么输出条件就是三个三位数拆分后的和要正好等于45(1+2+…+9=45)。
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <algorithm>
using namespace std;
int main()
{
for(int i = 123; i <= 329; i++)
{
int j = 2 * i;
int m = 3 * i;
int sum;
sum = (i / 100) + (i / 10 % 10) + (i % 10) + (j/ 100) + (j / 10 % 10) + (j % 10) + (m / 100) + (m / 10 % 10) + (m % 10);
if(sum == 45)printf("%d %d %d\n", i, j, m);
}
return 0;
}