搜索
查看: 325|回复: 2

仿照书上的解决奥数难题,发现运行不了

[复制链接]
 楼主| 发表于 2019-3-10 09:48:18 | 显示全部楼层 |阅读模式
5啊哈币
今天看书学习解决奥数难题        ABCD                                               *       E
                                           --------------
                                               DCBA
书上用if,我用while做的,感觉逻辑上没问题的,但是什么都没输出。
下面1是我的代码。


#include <stdio.h>
#include <stdlib.h>
int main( )
{
        int a,b,c,d,e;
    a=0;
    b=0;
    c=0;
    d=0;
    e=0;
    while(a<=9)
    {
                while(b<=9)
        {
                        while(c<=9)
            {
                                while(d<=9)
                {
                                        while(e<=9)
                    {
                                                if(a!=b&&a!=c&&a!=d&&a!=e
                                                           &&b!=c&&b!=d&&b!=e
                                                                         &&c!=d&&c!=e
                                                                                      &&d!=e)
                        {
                                                        if( (1000*a+100*b+10*c+d)*e==1000*d+100*c+10*b+a)
                                                        {
                                                                printf("%d,%d,%d,%d,%d",a,b,c,d,e);
                            }

                        }
                                                e=e+1;
                    }
                    d=d+1;
                }
                c=c+1;
            }
            b=b+1;
        }
        a=a+1;
    }


    system("pause");
    return 0;
}



最佳答案

查看完整内容

//看了开头就错了,开头就给赋值了,怎么循环。 #include #include int main( ) { int a,b,c,d,e; a=0; while(a
发表于 2019-3-10 09:48:19 | 显示全部楼层
//看了开头就错了,开头就给赋值了,怎么循环。
#include <stdio.h>
#include <stdlib.h>
int main( )
{
        int a,b,c,d,e;
    a=0;
    while(a<=9)
    {
                                b=0;
                while(b<=9)
        {
                                                c=0;
                        while(c<=9)
            {
                                                                d=0;
                                while(d<=9)
                {
                                                                                e=0;
                                        while(e<=9)
                    {
                                                if(a!=b&&a!=c&&a!=d&&a!=e
                                                           &&b!=c&&b!=d&&b!=e
                                                                         &&c!=d&&c!=e
                                                                                      &&d!=e)
                        {
                                                        if( (1000*a+100*b+10*c+d)*e==1000*d+100*c+10*b+a)
                                                        {
                                                                printf("%d,%d,%d,%d,%d",a,b,c,d,e);
                                                                                                                }


                        }
                                                e=e+1;
                    }
                    d=d+1;
                }
                c=c+1;
            }
            b=b+1;
        }
        a=a+1;
    }


    system("pause");
    return 0;
}


 楼主| 发表于 2019-3-11 23:11:43 | 显示全部楼层
哦!对,看了你的思路恍然大悟。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表