C语言的permutation求解

#include<stdio.h>
int main(){
int a,b,c;
for(a=1;a<=9;a++){
for(b=1;b<=9;b++){
for(c=1;c<=9;c++){
int abc=a*100+b*10+c;
int def=2*abc;
int ghi=3*abc;
int d=def/100;
int e=def/10%10;
int f=def%10;
int g=ghi/100;
int h=ghi/10%10;
int i=ghi%10;
if(a+b+c+d+e+f+g+h+i==45&&a*b*c*d*e*f*g*i==362880){
printf("%d %d %d\n",abc,def,ghi);
}
}
}
if(a=3&&b==2&&c==9)break;
}
}

用1-9组成三个三位数,每个数字只能用一次,要求abc:def:ghi=1:2:3,按照abc def ghi每行一解的格式输出。

以上代码在运行时没有任何输出。

化糖
浏览 2668回答 5
5回答

刚学编程的小学生

if(a+b+c+d+e+f+g+h+i==45&&a*b*c*d*e*f*g*i==362880){这里少乘了个h,不理解最后的if是干嘛的还有真不想吐槽你的代码了,至少缩进要弄好啊,源代码粘上#include <stdio.h> int main() {     int a,b,c;     for(a=1;a<10;a++){         for(b=1;b<10;b++){             for(c=1;c<10;c++){                 int abc=a*100+b*10+c;                 int def=2*abc;                 int ghi=3*abc;                 int d=def/100;                 int e=def/10%10;                 int f=def%10;                 int g=ghi/100;                 int h=ghi/10%10;                 int i=ghi%10;                 if(a+b+c+d+e+f+g+h+i==45&&a*b*c*d*e*f*g*h*i==362880){                     printf("%d %d %d\n",abc,def,ghi);                     goto end;                 }             }         }     }     end:     return 0; }

按照自己的节奏前行

if(a+b+c+d+e+f+g+h+i==45&&a*b*c*d*e*f*g*i==362880){ printf("%d %d %d\n",abc,def,ghi); } //这说明你if条件不满足呀= =

什么鬼_呀你

a!=b!=c这个条件没说呀!
打开App,查看更多内容
随时随地看视频慕课网APP