利用for循环计算水仙花数(水仙花数是一个三位数三位数的各位立方之和等于该本身)
时间: 2023-10-24 12:18:22 浏览: 71
可以使用以下代码计算三位数的水仙花数:
```python
for i in range(100, 1000):
num = str(i)
sum = 0
for digit in num:
sum += int(digit) ** 3
if sum == i:
print(i)
```
首先,我们使用 `range(100, 1000)` 生成 100 到 999 之间的所有三位数。对于每个数,我们将其转换为字符串并使用一个内部循环来计算其各位数字的立方和。如果这个和等于原始数字本身,那么这个数字就是水仙花数,我们将其打印出来。
相关问题
编写程序,通过for循环计算水仙花数。 提示:水仙花数是一个三位数,三位数各位的立方之和等于三位数本身。
可以的,以下是计算水仙花数的代码:
for num in range(100, 1000):
temp = num
sum = 0
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num)
用for循环写,在MATLAB程序运行,计算200~800之间(含200和800)所有的水仙花数,要求输出水仙花数个数,列出所有的水仙花数,以及所有的水仙数之和.水仙花数是一个三位数,其各位数字立方和等于该数本身.例如153=13+53+33
在MATLAB中,可以使用for循环来查找并计算200到800范围内的所有水仙花数。首先,我们需要了解水仙花数的条件,即一个三位数如果等于其各个位上的数字立方和。以下是编写此类程序的步骤:
```matlab
% 初始化计数器和总和变量
count = 0; % 水仙花数的数量
sum_of_narcissistic_numbers = 0; % 水仙花数的总和
% 循环遍历从200到800的所有整数
for num = 200:100:800
% 将数字拆分为三个单独的数字
digits = num;
if digits < 10
break; % 结束循环,因为单个数字无法构成水仙花数
end
hundreds = floor(digits / 100);
tens = floor((digits - hundreds * 100) / 10);
units = digits - hundreds * 100 - tens * 10;
% 检查是否满足水仙花数条件
if hundreds^3 + tens^3 + units^3 == num
count = count + 1; % 数量加一
sum_of_narcissistic_numbers = sum_of_narcissistic_numbers + num; % 总和加上当前数
fprintf('水仙花数: %d\n', num); % 输出当前找到的水仙花数
end
end
% 打印结果
fprintf('共有 %d 个水仙花数。\n', count);
fprintf('水仙花数之和: %d.\n', sum_of_narcissistic_numbers);
```
当你运行这个程序,它会输出满足条件的水仙花数、总数和它们的总和。
阅读全文