首页 > 分享 > 打印“水仙花数”

打印“水仙花数”

首先我们要了解什么是水仙花数:水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1 ^ 3+5 ^ 3+3 ^ 3,则153是一个“水仙花数”。
通过举得例子,容易知道,要判断一个数是不是“水仙花数”要对该数作如下处理:1.知道这个数有多少位,比如153有三位。
2.将该数的每一位都拿出来,比如1 、 3、5.
3.将每一位对应的指数运算加起来,比较该数与得到的总和是否相等。
4.根据所给范围,遍历每一个数,重复123操作。
这就可以实现水仙花数的打印。
以下是代码的实现:
其中 Narcissisticnumber(int n, int num1)函数是求该数的位数的功能。

#include<stdio.h> #include<Windows.h> #include<math.h> #pragma warning(disable:4996) int Getnumber(int s ){int jud = s,n=1;while (jud >= 10){n++;jud /= 10;}return n; } int Narcissisticnumber(int n, int num1){int mul = 0,sum=0;if (n<10 ){if (n == pow(n, num1)){return 1;}}else if(n%10==0){return -1;}else {int n1 = n;while (n1 != 0){//153 15 1mul = n1% 10;//3 5 1sum = sum + pow(mul, num1);//9+5^3+1^3=n1 = n1 / 10;//15 1 0}if (n == sum){return 1;}} } int main(){printf("0-10000之间的 水仙花数:n");int start = 1, end = 10000;int num = 0;int i = start,result=0;for (; i <= end; i++){num = Getnumber(i);result=Narcissisticnumber(i,num);//水仙花数if (result == 1){printf("%d ", i);}}system("pause");return 0; }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051

以上就完成了打印“水仙花数”的操作,如有问题欢迎指正。

相关知识

打印水仙花数
水仙花数
C语言:输出所有的水仙花数
水仙花数,C语言
Java练习系列(三)水仙花数
Java 语言实现水仙花数
作业打卡 设置密码 &水仙花数& 查找字符串
for循环案例之判断是否为水仙花数
1027: 判断水仙花数春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。
js水仙花数原理

网址: 打印“水仙花数” https://m.huajiangbk.com/newsview302085.html

所属分类:花卉
上一篇: 玫瑰花红茶泡饮方法
下一篇: 花卉生长的不同时期,花卉需肥规律