为了账号安全,请及时绑定邮箱和手机立即绑定

C语言的permutation求解

C语言的permutation求解

C C# C++
化糖 2017-07-26 20:22:48
#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每行一解的格式输出。以上代码在运行时没有任何输出。
查看完整描述

5 回答

已采纳
?
刚学编程的小学生

TA贡献4条经验 获得超2个赞

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;
}


查看完整回答
反对 回复 2017-07-31
?
按照自己的节奏前行

TA贡献90条经验 获得超70个赞

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条件不满足呀= =


查看完整回答
2 反对 回复 2017-07-28
?
什么鬼_呀你

TA贡献46条经验 获得超35个赞

a!=b!=c这个条件没说呀!

查看完整回答
1 反对 回复 2017-07-28
  • 5 回答
  • 0 关注
  • 2667 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信