MATLAB编程--求解水仙花数
【原创】MATLAB编程--求解水仙花数【例】 何为水仙花数?水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 +3^3 = 153)三位的水仙花数共有4个:153,370,371,407;四位的水仙花数共有3个:1634,8208,9474;五位的水仙花数共有3个:54748,92727,93084;六位的水仙花数只有1个:548834;七位的水仙花数共有4个:1741725,4210818,9800817,9926315;八位的水仙花数共有3个24678051程序如下:for m=100:999 m1=fix(m/100); m2=rem(fix(m/10),10); m3=rem(m,10); if m==m1^3+m2^3+m3^3 disp(m) endend
153 370 371 407
while循环结构【例】Fibonacci数组的元素满足Fibonacci 规则: ,;且。现要求该数组中第一个大于10000的元素。a(1)=1;a(2)=1;i=2;while a(i)<=10000 a(i+1)=a(i-1)+a(i); i=i+1;end;i,a(i),
i = 21ans = 10946
【例】用for循环指令来寻求Fibonacc数组中第一个大于10000的元素。n=100;a=ones(1,n);for i=3:n a(i)=a(i-1)+a(i-2); if a(i)>=10000 a(i), break; end;end,i
ans = 10946i = 21
switch-case结构【例】学生的成绩管理,用来演示switch结构的应用。clear;for i=1:10;a{i}=89+i;b{i}=79+i;c{i}=69+i;d{i}=59+i;end;c=[d,c];Name={' Jack','Marry','Peter',' Rose',' Tom'};Mark={72,83,56,94,100};Rank=cell(1,5);S=struct('Name',Name,'Marks',Mark,'Rank',Rank);for i=1:5 switch S(i).Marks case 100 S(i).Rank='满分'; case a S(i).Rank=' 优秀'; case b S(i).Rank=' 良好'; case c S(i).Rank=' 及格'; otherwise S(i).Rank='不及格'; endenddisp(['学生姓名 ',' 得分 ',' 等级']);disp(' ')for i=1:5; disp([S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank]);end;
学生姓名 得分 等级 Jack 72 及格Marry 83 良好Peter 56 不及格 Rose 94 优秀 Tom 100 满分 【例】matlab 魔方矩阵的程序设计function M = magic(n)%MAGIC Magic square.% MAGIC(N) is an N-by-N matrix constructed from the integers% 1 through N^2 with equal row, column, and diagonal sums.% Produces valid magic squares for all N > 0 except N = 2. % Copyright 1984-2002 The MathWorks, Inc. % $Revision: 5.15 $ $Date: 2002/04/15 03:44:23 $ % Historically, MATLAB's ma