编程 求水仙花数

若水仙花数是一个三位数,它的各位数字的平方之和等于该数,如153=1^3+5^3+3^3.请设计一个算法,找出100到999中所有的水仙花数... 若水仙花数是一个三位数,它的各位数字的平方之和等于该数,如153=1^3+5^3+3^3.请设计一个算法,找出100到999中所有的水仙花数 展开
 我来答
mdxzzs
推荐于2017-10-08 · 超过10用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:19.7万
展开全部
  1. 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)

  2. C语言代码

#include <stdio.h> 
#include <stdlib.h>
void main() 

    int i,j,k,n; 
    printf("'water flower'number is:"); 
    for(n=100;n<10000;n++) 
    { 
        i=n/100;/*分解出百位*/ 
        j=n/10%10;/*分解出十位*/ 
        k=n%10;/*分解出个位*/ 
        if(n==i*i*i+j*j*j+k*k*k) 
        { 
            printf("%-5d",n); 
        } 
    } 
    printf("\n"); 
}

  3.  C++代码

#include<iostream>
using namespace std;
int f(int x)
 {int y=1;
 for(int i=1;i<=3;i++)
  y=y*x;
 return y;}
int main()
{
 for(int i=100;i<=999;i++)
  {if(f(i%10)+f(i/10%10)+f(i/100%10)==i)
  cout<<i<<endl;}
 return 0;
}
系帆候专
2020-04-29 · TA获得超过3788个赞
知道大有可为答主
回答量:3013
采纳率:35%
帮助的人:220万
展开全部
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;

}
Java
语言的"水仙花数"实现代码
public
class
shuixianhua

{

public
static
void
main(String[]
args){

for(int
i=1;
i<=9;
i++)

for(int
j=0;
j<=9;
j++)

for(int
k=0;
k<=9;
k++)

if(i*i*i+j*j*j+k*k*k
==
100*i+10*j+k)

System.out.print(i*100+j*10+k+"
");

}

}
C++编译器上的"水仙花数"实现代码

#include<iostream>

using
namespace
std;

void
main()

{

int
a=100;

int
q,w,e;

for(a;a<1000;++a)

{

q=a/100;

w=(a-q*100)/10;

e=(a-q*100-w*10);

if(a==q*q*q+w*w*w+e*e*e)

cout<<a<<"是水仙花数"<<endl;}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rentianqaz
2012-05-14 · TA获得超过194个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:171万
展开全部
我给你用c的格式写一下:
#include"stdio.h"
#include"stdlib.h"
int main()
{
int i,sum,t,b;
for (i=1;i<=10000;i++)
{
sum=0;
b=i;
while(b!=0){
t=b%10;
sum=sum+t*t*t;
b=b/10;}
if(sum==i)
printf("%d ",i);
}

return 0;
} }
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
释捷源昱
2020-05-02 · TA获得超过3890个赞
知道大有可为答主
回答量:3093
采纳率:30%
帮助的人:182万
展开全部
水仙花数是指一多位数,其各个数之立方和等于该数本身
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d83e33e
2012-05-13 · TA获得超过1171个赞
知道小有建树答主
回答量:164
采纳率:100%
帮助的人:188万
展开全部
//判断一个三位数是否为水仙花数
bool isNarcissusNum(long n)
{
bool flag = false;
float ge = 0;
float shi = 0;
float bai = 0;
float sum = 0;

ge = n % 10;
bai = n / 100;
shi = (n % 100 - ge) / 10;

sum = pow(ge,3) + pow(shi,3) + pow(bai,3);

if(sum == n)
flag = true;

return flag;
}

//调用
for(int i=100;i<1000;i++)
{
if(isNarcissusNum(i)==true)
cout<<i<<" "; //输出水仙花数
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式