主要思路:构造一个judge函数,判断是否1-9都出现了。由于三位数范围为123-987,但因为要求三个数字比例为1:2:3,所以在遍历时的范围是123-987/3。遍历范围内的每一个整数x,并判断2x,3x是否满足judge函数,满足则输出这三个数,否则继续遍历。
代码如下:
#include<iostream>
using namespace std;
bool judge(int a,int b,int c){
int num[10]={0};
num[a%10]=1; //取a的个位
num[(a/10)%10]=1; //取a的十位
num[a/100]=1; //取a的百位
num[b%10]=1; //取b的个位
num[(b/10)%10]=1; //取b的十位
num[b/100]=1; //取b的百位
num[c%10]=1; //取c的个位
num[(c/10)%10]=1; //取c的十位
num[c/100]=1; //取c的百位
for(int i=1;i<=9;++i){
if(num[i]==0) return 0; //若1-9中有数字未出现,返回0
}
return 1;
}
int main()
{
for(int i=123;i<=987/3;++i){
int a=i,b=i*2,c=i*3;
if(judge(a,b,c)) cout<<a<<" "<<b<<" "<<c<<endl; //判断是否满足judge,是则输出,否则继续遍历
}
return 0;
}
搜索
复制
标签:10,连击,return,P1008,int,个位,num,w2,judge From: https://www.cnblogs.com/ruiyifei/p/17307317.html