众所周知:一个三位数的水仙花数就是这个数的百位、十位、个位的三次方的,就比如说: 153 = 1*1*1+3*3*3+5*5*5 = 1+27+125 =153,现在应该懂了吧,所有我们用分别用c语言、java、python来实现:
c语言版:
#include <stdio.h>
int main(int argc,char *argv[])
{
int i, a1, a2, a3, sum;
printf("三位数的水仙花数有:\n");
// 遍历所有三位数
for (i = 100; i < 1000; i++) {
// 获取每一位数字
a1 = i / 100; // 百位
a2 = (i / 10) % 10; // 十位
a3 = i % 10; // 个位
// 计算每位数字的立方和
sum = a1 * a1 * a1 + a2 * a2 * a2 + a3 * a3 * a3;
// 判断是否为水仙花数
if (sum == i) {
printf("%d\n", i);
}
}
return 0;
}
java版:
public class NarcissisticNumber {
public static void main(String[] args) {
System.out.println("三位数的水仙花数有:");
// 遍历所有三位数
for (int i = 100; i < 1000; i++) {
int a1 = i / 100; // 百位
int a2 = (i / 10) % 10; // 十位
int a3 = i % 10; // 个位
// 计算每位数字的立方和
int sum = a1 * a1 * a1 + a2 * a2 * a2 + a3 * a3 * a3;
// 判断是否为水仙花数
if (sum == i) {
System.out.println(i);
}
}
}
}
python版
print("三位数的水仙花数有:")
# 遍历所有三位数
for i in range(100, 1000):
a1 = i // 100 # 百位
a2 = (i // 10) % 10 # 十位
a3 = i % 10 # 个位
# 计算每位数字的立方和
sum = a1**3 + a2**3 + a3**3
# 判断是否为水仙花数
if sum == i:
print(i)
最后的结果为:
三位数的水仙花数有:
153
370
371
407
标签:10,int,a1,a3,a2,水仙花 From: https://blog.csdn.net/qq_61958489/article/details/142376991