matlab输入正整数N,输出所有N位水仙花数
时间: 2024-03-10 08:44:18 浏览: 127
输出所有的水仙花数
5星 · 资源好评率100%
水仙花数是指一个n位数(n≥3)的每个位上的数字的n次幂之和等于它本身。例如,153是一个三位水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是一个MATLAB程序,可以输出所有N位水仙花数:
```
N = input('请输入N:'); % 输入N
start_num = 10^(N-1); % 最小的N位数
end_num = 10^N-1; % 最大的N位数
for num = start_num:end_num % 遍历所有N位数
digits = num2str(num) - '0'; % 将数字转换为数组
if num == sum(digits.^N) % 如果是水仙花数,则输出
fprintf('%d ', num);
end
end
```
在上面的程序中,我们先输入N,然后计算出最小的N位数start_num和最大的N位数end_num。接下来,我们使用for循环遍历所有N位数,将数字转换为数组,计算每个位上的数字的N次幂之和,如果等于该数本身,则输出该数。
例如,当N=3时,程序输出所有三位水仙花数:
```
请输入N:3
153 370 371 407
```
需要注意的是,当N比较大时,程序的运行时间会比较长,因为需要遍历很多数。
阅读全文