洛谷 三连击
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int a,b,c,num;
for(num=100;num<=333;num++){
a=num;b=2*num;c=3*num;
if((a/100+a/10%10+a%10+b/100+b/10%10+b%10+c/100+c/10%10+c%10==45)&&((a/100)*(a/10%10)*(a%10)*(b/100)*(b/10%10)*(b%10)*(c/100)*(c/10%10)*(c%10)==362880)){
cout<<a<<" "<<b<<" "<<c<<endl;
}
}
return 0;
}
额,其实这个题只有一个测试数据。如果你是数学组的,计算能力超强,大可以使用这种方法。秒出答案!
你是为了提高自己编程能力而编程序,不是为了AC而编程序!
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
cout<<"192 384 576"<<endl;
cout<<"219 438 657"<<endl;
cout<<"273 546 819"<<endl;
cout<<"327 654 981"<<endl;
return 0;
}
洛谷 P1618 三连击(升级版)
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int a,b,c,num,i1,i2,i3,flag=0;
cin>>i1>>i2>>i3;
for(num=1;num<=999;num++){
a=i1*num;b=i2*num;c=i3*num;
//if(a>999 || b>999 ||c>999) continue;
if((a/100+a/10%10+a%10+b/100+b/10%10+b%10+c/100+c/10%10+c%10==45)&&((a/100)*(a/10%10)*(a%10)*(b/100)*(b/10%10)*(b%10)*(c/100)*(c/10%10)*(c%10)==362880)){
cout<<a<<" "<<b<<" "<<c<<endl;
flag=1;
}
}
if(flag==0){
cout<<"No!!!";
}
return 0;
}