编程 求水仙花数
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 <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++代码
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('不是水仙花数') |
结语
通过对水仙花数的学习,让我们明白了循环语句的使用,能够去解决更多的实例问题,虽然在对算法的处理上可能会存在一些问题,但只要认真思考也能够想出方法来解决水仙花数,通过循环语句也能够解决更多的问题。
以上是关于编程 求水仙花数的主要内容,如果未能解决你的问题,请参考以下文章