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