matlab求水仙花数函数
时间: 2023-11-04 10:00:19 浏览: 45
您好,我可以为您提供一个简单的 MATLAB 求水仙花数的函数:
function [nums] = narcissisticNumber(n)
nums = [];
if n < 3
return;
end
for i = 10^(n-1) : 10^n - 1
temp = i;
sum = 0;
while temp > 0
bit = mod(temp, 10);
sum = sum + bit^3;
temp = fix(temp/10);
end
if sum == i
nums = [nums, i];
end
end
end
输入一个整数 n,该函数会返回所有 n 位的水仙花数。希望能对您有所帮助!
相关问题
matlab求水仙花数
在MATLAB中求水仙花数可以通过编写一个简单的程序来实现。水仙花数是指一个n位数,其各个位上的数字的n次方之和等于该数本身。以下是一个求水仙花数的MATLAB程序示例:
```matlab
function narcissisticNumbers = findNarcissisticNumbers(n)
narcissisticNumbers = [];
for num = 10^(n-1) : 10^n - 1
digits = num2str(num) - '0';
if sum(digits.^n) == num
narcissisticNumbers = [narcissisticNumbers, num];
end
end
end
```
这个函数`findNarcissisticNumbers`接受一个参数`n`,表示要求的水仙花数的位数。它会返回一个包含所有满足条件的水仙花数的向量。
使用示例:
```matlab
narcissisticNumbers = findNarcissisticNumbers(3);
disp(narcissisticNumbers);
```
这将输出所有3位的水仙花数。
matlab 求水仙花数
以下是 Matlab 求水仙花数的代码:
for i = 100:999
a = floor(i/100);
b = floor((i-a*100)/10);
c = i-a*100-b*10;
if i == a^3+b^3+c^3
disp(i);
end
end
这段代码可以输出所有的三位数水仙花数。