[NOIP1998 普及组] 三连击 - 洛谷
[NOIP1998 普及组] 三连击
题目背景
本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。
题目描述
将 1, 2,... , 9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成 1 : 2 : 3的比例,试求出所有满足条件的 3 个三位数。
输入格式
无
输出格式
若干行,每行3个数字。按照每行第1个数字升序排列。
样例 #1
样例输入
无
样例输出
192 384 576
* * *
...
* * *
(剩余部分不予展示)
```
提示
NOIP1998 普及组 第一题
代码区:
#include<stdio.h>
int main(){
for(int i=123;i<=987;i++){
int j=0;
int arr[10]={0}; //创建数组用于判断1~9是否全部出现
int temp=i; //必须要给i,b,c重新赋值一个变量,防止它们本值改变
while(temp){
arr[temp%10]++;
temp=temp/10;
j++;
}
int b=i*2;
int temp_b=b;
while(temp_b&&temp_b<=987){
arr[temp_b%10]++;
temp_b=temp_b/10;
j++;
}
int c=i*3;
int temp_c=c;
while(temp_c&&temp_c<=987){
arr[temp_c%10]++;
temp_c=temp_c/10;
j++;
}
//遍历数组用于判断1~9是否全部出现1次
int flag=1;
for(int h=1;h<10;h++){
if(arr[h]!=1){
flag=0;
break;
}
}
if(flag==1){
printf("%d %d %d\n",i,b,c);
}
}
return 0;
}
欢迎各位读者提出意见。
(菜菜洛谷奋斗小日记)