山迟暮 @ 2021-07-22 13:48:13
#include<bits/stdc++.h>
using namespace std;
int r[10],love[1001];
bool ke(int u,int i,int o){
int f=0,e=1,p=0;
while(u) {r[p++] = u%10; u/=10;};
while(i) {r[p++] = i%10; i/=10;};
while(o) {r[p++] = o%10; o/=10;};
for(int i = 1;i<=p;i++) {f+=r[i];e*=r[i];}
if(f==45&&e==362880) return true;
return false;
}
int main(){
bool flag = true;
int a,b,c,x=0,len=0;
cin>>a>>b>>c;
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
for(int z=1;z<=9;z++){
love[len++] = i*100+j*10+z;
}
}
}
for(int i=1;i<=len;i++){
for(int j=i+1;j<=len;j++){
for(int z=j+1;z<=len;z++){
if(((love[i]*b==love[j]*a)&&(love[j]*c==love[z]*b))&&(ke(love[i],love[j],love[z])==true)){
cout<<love[i]<<" "<<love[j]<<" "<<love[z]<<endl;
flag = false;
}
}
}
}
if(flag==true) cout<<"No!!!";
return 0;
}
by Rui_R @ 2021-07-22 15:07:14
@zhou1108__ 把 [p++]
改成 [++p]
[len++]
同理
by 山迟暮 @ 2021-07-22 16:39:40
@Rui_R 没用诶
by Rui_R @ 2021-07-22 19:32:19
@zhou1108__ ,,我改完交上去过了
你仔细看看是不是哪没改干净
by 山迟暮 @ 2021-07-22 19:45:01
@Rui_R !!!谢谢,不过为什么要用++len
by Rui_R @ 2021-07-22 19:49:20
@zhou1108__
p++
是返回 p
的值,然后把 p+=1
++p
是把 p+=1
,然后返回 p
的值
你这里枚举的时候是从 1
枚举到 p
,并且 p
初始值是 0
那么你感受一下就是 ++p
啦
by 山迟暮 @ 2021-07-23 08:24:16
@Rui_R !!如果p初始是1就可以用p++了是吗。 谢谢大佬
by Rui_R @ 2021-07-23 08:42:09
@zhou1108__ 可以,但是要注意有意义的下标范围会变成 1
到 p-1
by 山迟暮 @ 2021-07-23 10:14:48
@Rui_R 好哒