编写程序,输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身
时间: 2024-06-01 07:13:05 浏览: 101
。好的,这是一个比较简单的问题。水仙花数有三个数,分别为153、370、371。您可以这样编写程序:
for i in range(100, 1000): if i == (i // 100) ** 3 + ((i // 10) % 10) ** 3 + (i % 10) ** 3: print(i)
希望这可以帮到您!
相关问题
编写程序显示所有水仙花数。所谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。例如,153是水仙花数,因为153=13+53+33
计算所有三位水仙花数的实现方法
要找出所有的三位水仙花数,可以通过编程来逐一验证每一个三位数是否满足条件。以下是几种常见编程语言中的具体实现方式。
Python 实现
Python 提供了一种简洁的方式来解决这个问题。可以使用循环遍历从 100 到 999 的所有整数,并分别提取它们的百位、十位和个位数字进行计算[^1]。
for num in range(100, 1000): # 遍历所有三位数
hundreds = num // 100 # 百位
tens = (num // 10) % 10 # 十位
units = num % 10 # 个位
if hundreds ** 3 + tens ** 3 + units ** 3 == num: # 判断立方和是否等于原数
print(num)
C 语言实现
C 语言是一种高效的低级语言,在处理这类问题时也非常适用。下面是一段完整的代码示例[^2]:
#include<stdio.h>
int main(){
for(int i=100;i<1000;i++){
int a=i/100; // 百位
int b=(i%100)/10; // 十位
int c=i%100%10; // 个位
if((a*a*a+b*b*b+c*c*c)==i){ // 如果立方和等于原数,则输出
printf("%d\n",i);
}
}
}
MATLAB 实现
MATLAB 是一种强大的数值计算工具,也可以用来求解此类问题。以下是一个基于 MATLAB 的解决方案[^4]:
function [NarcissisticNumber] = find_narcissistic_numbers()
NarcissisticNumber = [];
for n = 100:999
i = floor(n / 100); % 百位
j = floor(mod(n, 100) / 10); % 十位
k = mod(n, 10); % 个位
if n == i^3 + j^3 + k^3 % 若立方和等于原数则记录下来
NarcissisticNumber = [NarcissisticNumber, n];
end
end
end
以上三种方法均能有效解决问题,选择哪种取决于个人偏好以及实际应用场景的需求。
用JAVA编写程序,输出所有的水仙花数,所谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身
好的,以下是Java代码实现:
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int a = i / 100;
int b = (i / 10) % 10;
int c = i % 10;
if (i == a * a * a + b * b * b + c * c * c) {
System.out.println(i);
}
}
}
}
输出结果为:
153
370
371
407
注意,水仙花数只有四个:153、370、371、407,因为只有这四个数的各位数字的立方和等于该数本身。
相关推荐















