Matlab判斷水仙花數(shù)
水仙花數(shù)是指一個三位數(shù),它的每個位上的數(shù)字的三次冪之和等于它本身。為了實現(xiàn)這一功能,我們可以編寫一個子函數(shù)文件。 編寫子函數(shù)文件 在子函數(shù)文件中,我們可以定義一個函數(shù)來判斷輸入的數(shù)字是否為水仙花數(shù)
水仙花數(shù)是指一個三位數(shù),它的每個位上的數(shù)字的三次冪之和等于它本身。為了實現(xiàn)這一功能,我們可以編寫一個子函數(shù)文件。
編寫子函數(shù)文件
在子函數(shù)文件中,我們可以定義一個函數(shù)來判斷輸入的數(shù)字是否為水仙花數(shù)。
function result isNarcissus(num)
% 將數(shù)字轉換為字符串
str_num num2str(num);
% 獲取數(shù)字的位數(shù)
digit length(str_num);
% 初始化和值
sum 0;
% 計算每個位數(shù)的數(shù)字的三次冪之和
for i 1:digit
sum sum str2num(str_num(i))^3;
end
% 判斷是否為水仙花數(shù)
if sum num
result 1; % 是水仙花數(shù)
else
result 0; % 不是水仙花數(shù)
end
end
調用子函數(shù)文件
在主函數(shù)文件中,我們可以調用子函數(shù)文件,并根據(jù)輸入的數(shù)字判斷是否為水仙花數(shù)。
% 輸入一個數(shù)
n input('請輸入一個數(shù)字: ');
% 調用子函數(shù)文件判斷是否為水仙花數(shù)
result isNarcissus(n);
% 輸出結果
if result 1
disp('是水仙花數(shù)');
else
disp('不是水仙花數(shù)');
end
輸出斐波那契數(shù)列前18項
斐波那契數(shù)列是一個遞歸定義的數(shù)列,第一項和第二項為1,從第三項開始,每一項都是前兩項的和。為了實現(xiàn)輸出斐波那契數(shù)列前18項的功能,我們可以編寫一個子函數(shù)文件。
編寫子函數(shù)文件
在子函數(shù)文件中,我們可以定義一個函數(shù)來計算斐波那契數(shù)列的第n項。
function fibo fibonacci(n)
% 初始化斐波那契數(shù)列前兩項
f1 1;
f2 1;
% 判斷n是否小于3,如果是,則直接返回1
if n < 3
fibo 1;
else
% 從第三項開始計算斐波那契數(shù)列的第n項
for i 3:n
f3 f1 f2;
f1 f2;
f2 f3;
end
fibo f3;
end
end
調用子函數(shù)文件
在主函數(shù)文件中,我們可以調用子函數(shù)文件,并指定想要輸出的斐波那契數(shù)列的項數(shù)。
% 調用子函數(shù)文件輸出斐波那契數(shù)列前18項
fibonacci(18)
通過以上的代碼,我們可以實現(xiàn)判斷水仙花數(shù)和輸出斐波那契數(shù)列前18項的功能。