用C++编程:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.

 我来答
帐号已注销
2019-12-27 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:167万
展开全部

main()

{

 int n,a,b,c;

for(n=100;n<=999;n++)

{

a=n/100;

b=n%100/10;

c=n%10;

 if(a*a*a+b*b*b+c*c*c==n)  printf("%d\n",n);

}

}

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。

三位的水仙花数共有4个:153,370,371,407;

加一下就可以了,

153+370+371+407=1301

你可以用程序来找到他们,比如用我会的pascal语言就是:

program shuixianhuashu;

var

a,b,c:integer;

begin

for a:=1 to 9 do

for b:=0 to 9 do

for c:=0 to 9 do

if a*a*a+b*b*b+c*c*c=100*a+10*b+c then writeln(100*a+10*b+c);

end.

或:

program sxh;

var a,b,c,d:integer;

begin

for a:=100 to 999 do begin

b:=a mod 10;

c:=a mod 100 div 10;

d:=a div 100;

if b*b*b+c*c*c+d*d*d=a then writeln(a);

end;

end.

也可用C语言:

#include <stdio.h>

int main(void)

{

int a,b,c;

for(a=1;a<=9;a++)

for(b=0;b<=9;b++)

for(c=0;c<=9;c++)

if(100*a+10*b+c==a*a*a+b*b*b+c*c*c)

printf("%d%d%d\n",a,b,c);

return 0;

}

扩展资料:

水仙花数又称阿姆斯特朗数。

三位的水仙花数共有4个:153,370,371,407;

四位的四叶玫瑰数共有3个:1634,8208,9474;

五位的五角星数共有3个:54748,92727,93084;

六位的六合数只有1个:548834;

七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;

八位的八仙数共有3个:24678050,24678051,88593477

参考资料来源:百度百科-水仙花数

匿名用户
推荐于2019-11-07
展开全部
#include "stdio.h"

int main(void)
{
int i,j,k,num;
printf("水仙花数为:");
for(num=100;num<1000;num++)
{
i=num/100;//取百位数字
j=num/10%10;//取十位数字
k=num%10;//取个位数字
if(num==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",num);
}
}
printf("\n");
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leeluyou
2017-01-11 · TA获得超过632个赞
知道小有建树答主
回答量:360
采纳率:66%
帮助的人:136万
展开全部
#include<stdio.h>
int main()

{
int i,j,k,l;
for(l=100;l<1000;l++)
{
i=l/100;
j=l%100/10;
k=l%10;
if(i*i*i+j*j*j+k*k*k==l)
printf("%d ",l);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式