您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
水仙花数(Narcissistic number)是指一个n位数,其每个位上的数字的n次幂之和等于它本身。例如,153是一个3位数的水仙花数,因为1³ + 5³ + 3³ = 153。
下面是一个简单的C语言程序,用于找出所有3位数的水仙花数:
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("三位数的水仙花数有:\n");
for (num = 100; num < 1000; num++) {
originalNum = num;
result = 0;
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, 3);
originalNum /= 10;
}
if (result == num) {
printf("%d\n", num);
}
}
return 0;
}
num
:当前检查的数字。originalNum
:保存num
的副本,用于计算。remainder
:存储originalNum
的每一位数字。result
:存储每一位数字的立方和。程序通过循环遍历所有3位数,计算每个数的各位数字的立方和,如果等于原数,则输出该数。
变种水仙花数是指一个n位数,其每个位上的数字的m次幂之和等于它本身,其中m不一定是n。例如,8208是一个4位数的变种水仙花数,因为8⁴ + 2⁴ + 0⁴ + 8⁴ = 8208。
下面是一个C语言程序,用于找出所有4位数的变种水仙花数:
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("四位数的变种水仙花数有:\n");
for (num = 1000; num < 10000; num++) {
originalNum = num;
result = 0;
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, 4);
originalNum /= 10;
}
if (result == num) {
printf("%d\n", num);
}
}
return 0;
}
通过上述代码,我们可以轻松地找到水仙花数和变种水仙花数。这些代码展示了如何使用循环和条件判断来解决数学问题。你可以根据需要修改代码中的位数和幂次,以查找其他类型的水仙花数。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。