编程 求水仙花数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程 求水仙花数相关的知识,希望对你有一定的参考价值。

若水仙花数是一个三位数,它的各位数字的平方之和等于该数,如153=1^3+5^3+3^3.请设计一个算法,找出100到999中所有的水仙花数

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

    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;

参考技术A 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;

参考技术B 我给你用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;
本回答被提问者采纳
参考技术C 水仙花数是指一多位数,其各个数之立方和等于该数本身 参考技术D //判断一个三位数是否为水仙花数
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<<" "; //输出水仙花数

求水仙花数

水仙花数对我们来说是一个比较困难的问题,如何合理运用循环语句解决水仙花数的问题是十分重要的。

问题

 运用循环如何找出水仙花数

方法

用文字描述解题思路,可配合一些图形进行描述以便更好的阐述。

通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

代码清单 1

num=eval(input('请输入一个数:'))
a=num%10
b=(num/10)%10
c=num/100
end=a**3+b**3+c**3
if end==num:
   print('是水仙花数')
else:
   print('不是水仙花数')

结语

通过对水仙花数的学习,让我们明白了循环语句的使用,能够去解决更多的实例问题,虽然在对算法的处理上可能会存在一些问题,但只要认真思考也能够想出方法来解决水仙花数,通过循环语句也能够解决更多的问题。

以上是关于编程 求水仙花数的主要内容,如果未能解决你的问题,请参考以下文章

c语言编程调用函数求水仙花数

大一c语言求水仙花数

求水仙花数和完数

如何用VB语言求水仙花数和求1~1000以内的素数

求水仙花数

python如何求水仙花数