求用 C++ & 迭代 解决,最好写出分析步骤

来源:百度知道 编辑:UC知道 时间:2024/05/11 18:21:19
[题目]将1,2...9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3
的比例,试求出所有满足条件的三个三位数.
例如:三个三位数192,384,576满足以上条件.
请大侠们写出分析步骤啊,最好用C++,谢谢

给你一个优化的版本(三层循环),只要求出x就可以:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void list()
{
int x,i,sum;
char s[3],st[9];
char c;
for(x=123;x<=321;x++)
{
i=0;
sum=0;
itoa(x,st,10);
itoa(2*x,s,10);
strcat(st,s);
itoa(3*x,s,10);
strcat(st,s);
for(c='1';c<='9';c++)
{
for(i=0;i<9;i++)
{
if(!(st[i]-c))
{
sum++;
break;
}
}
if(i==9)
break;
}
if(sum==9)
printf("%d %d %d\n",x,2*x,3*x);

}
}

int main()
{
list();
return 0;
}

提供一个很笨的办法:

main()
{
int a[9]={1,2,3,4,5,6,7,8,9};
int a1,a2,a3,a4,a5,a6,a7,a8,a9;
int i,j;

for(a1=1;a1<=9;a1++)
for(a2=1;a2<=9;a2++)
for(a