您当前的位置:首页 > 计算机 > 编程开发 > C语言

水仙花数问题

时间:01-03来源:作者:点击数:

求所有的水仙花数,将各个水仙花数存放到一个数组中并在屏幕上打印出来。所谓水仙花数是指一个三位正整数,它各位数字的立方之和等于此正整数。例如,153是一个水仙花数,因为153=13+53+33。 

分析:

① 使用穷举法,测试所有的三位正整数。

② 测试的次数固定,适合于使用for循环。

③ 设这个三位正整数为u,则:
         百位上的数为a=u/100;
         十位上的数为b=u/10-a*10;
         个位上的数为c=u-a*100-b*10。 

程序如下:

        main( ) 
        { 
            int a,b,c,x[999],u, i=0,j; 
            printf("The result is : \n"); 
            for (u=100;u<1000;u++) 
            {
               a=u/100; /*百位上的数*/ 
               b=u/10-a*10; /*十位上的数*/ 
               c=u-a*100-b*10; /*个位上的数*/ 
               if (a*100+b*10+c==a*a*a+b*b*b+c*c*c) 
               {
                  x[i]=u; 
                  i++; 
               } 
            } 
            for (j=0;j          printf("%8d",x[j]); 
        } 

运行结果为:The result is :153 370 371 407 

请思考:请你用别的编程方法再解此题。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门