matlab程序设计例题及答案
1.编写程序:计算1/3+2/5+3/7+……+10/21 法一: s=0; for i=1:10 s=s+i/(2*i+1); end s s = 4.4096 法二: sum((1:10)./(3:2:21)) ans = 4.4096 2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。 s=0; for i=1:100 if mod(i,3)==0 end,end s s = 210 3.画出y=n!的图(1 sushupd(1003) 该数不是素数 g = 1 17 59 1003 >> sushupd(1007) 该数不是素数 g = 1 19 53 1007 >> sushupd(1009) 该数是素数 >> sushupd(1011) 该数不是素数 g = 1 3 337 1011 9.将[1563 35 4123 65 121233 356 57; 1223543 43 23 132 345 45 31]从小到大排序,排成一列,禁用sort函数。 s=[1563 35 4123 65 121233 356 57;1223543 43 23 132 345 45 31]; s=[s(1,:) s(2,:)]; for i=1:length(s)-1 for i=1:length(s)-1 if s(i)>s(i+1) a=s(i); s(i)=s(i+1) s(i+1)=a; end end,end s s = Columns 1 through 8 23 31 35 43 45 57 65 132 Columns 9 through 14 345 356 1563 4123 121233 1223543 10. 两个整数a和b,如果a的因子和等于b,b的因子和也等于a,且a不等于b,则称a,b为一对亲密数。请寻找并输出2000以内的所有亲密数对。 g=[]; for a=1:2000 s1=0; s2=0; for r=1:a-1 if mod(a,r)==0 s1=s1+r; end end if a==s1 continue end if find(g==a)~=0 continue end for r=1:s1-1 if mod(s1,r)==0 s2=s2+r; end end if s2==a s=[s1 s2]; g=[g;s]; end end g g = 284 220