c语言求水仙花数c语言求水仙花数的算法

2024-07-20 08:59:52 浏览

#includeusingnamespacestd;voidmain(){intm=1,n=0,x=0;cout<<"1000以内的所有水仙花数数:"< c求水仙花数c求水仙花数的算法

;//输入你想要的数据,这个是判断三位数的。i=n/100;j=n/10-i*10;k=n%10;//上面i,j,k,是分别获取百位,十位,各位,上的数字。

if(n==i*i*i+j*j*j+k*k*k)//判断是不是水仙花数。

;//输出nelseprintf("no\n");}上面程序是只能判断三位数的,如果想更高的话,可以在判断各个位数上改动程序。

水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

for(i=100;i<1000;i++)//取值范围{ a=i/100;//百位数b=(i-a100)/10;//十位数c=i%10;//个位数if(i== aaa +bbb +cc*c)//判断各位上的立方和是否与原数n相等printf("%d\n",i);//输出结果}

    “水仙花数”是指一个三位数,其每位数字的立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。   

       基于此,利用for循环控制100-999个数,每个数分解出个位,十位,百位,再分别求立方相加并判断即可。

1、VF语言中,可以通过以下程序来输出水仙花数:```for i:=100 to 999 dobegin a:=i div 100; //取百位数 b:=(i-a*100) div 10; //取十位数 c:=i mod 10; //取个位数 if i=a*a*a+b*b*b+c*c*c then //判断是否为水仙花数 writeln(i); //输出水仙花数end;```首先在程序中使用 `for` 循环来遍历 100 到 999 中的所有数。

2、然后使用算术运算符来取出这些数的百位数、十位数和个位数。

3、接下来使用一个 `if` 语句来判断当前数是否为水仙花数,如果是则使用 `writeln` 函数来输出这个数。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。