您的位置:首页 > 其它

洛谷-三连击-循环!循环!循环!

2015-02-21 12:19 316 查看
题目描述 Description

将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。

输入输出格式 Input/output

输入格式:
木有输入
输出格式:
若干行,每行3个数字。按照每行第一个数字升序排列。

输入样例:

[b]输出样例:[/b]

192 384 576
* * *
...
* * *
(输出被和谐了)

思路:从123到987循环,再对1~9的每个数进行扫描,对每三个数分别进行处理,存入数组,最后扫描一遍数组,如果满足1:2:3的条件,输出即可。

代码如下:

#include<stdio.h>
int main()
{
int i,j,k,h,s;
int a[10];
for(i=123;i*3<=987;i++)//123~987循环
{
for(h=1;h<10;h++)//对每个数进行循环
{
a[h]=0;//清零
/*================*///第一个数
a[i/100]=1;//百位
a[i/10%10]=1;//个位
a[i%10]=1;//十位
/*================*///第二个数
j=i*2;
a[j/100]=1;//百位
a[j/10%10]=1;//个位
a[j%10]=1;//十位
/*================*///第三个数
k=i*3;
a[k/100]=1;//百位
a[k/10%10]=1;//个位
a[k%10]=1;//十位
/*================*/
}
for(s=0,h=1;h<10;h++)
{
s=s+a[h];//加上数组中的数
if(s==9)//满足1:2:3的条件
printf("%d %d %d\n",i,j,k);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: