上机练习3
1,用while 和for 循环创建一个矢量,等于1到5的平方 >> for n=1:5 x(n)=n^2; end >> x x =
1 4 9 16 25
n=0;y=0; while n<5 n=n+1; y(n)=n^2; end y
y =
1 4 9 16 25
2,交错调和级数收敛于2的自然对数:
1-1/2+1/3-1/4+1/5........= ln(2) = 0.6931471806 因此,交错调和级数近似值等于ln(2) .
要求,用while循环结构计算交错调和级数的近似值(近似度<0.0001)
n=1;s1=1; s=1; i=1; format long while i<=1000000 if rem(i,2)~=0 s=s1-1/(n+1); else
s=s1+1/(n+1); end s1=s; i=i+1; n=n+1; end s
s =
0.693147680559253
3,一个新生儿的父母为孩子提前存储教育经费,如果先存入1000元,此后每月存入100元,假设每月的利息是0.5%,年利息为6%
每月都有利息收入和新增存款,新的存款余额可以用以下面的公式计算
新的存款余额= 原存款余额 + 利息 + 新增存款
用for计算,在未来的18年里,每月的的存款是多少?画出存款余额和实践的关系曲线 4,输入x,y的值,并将它们的值互换后输出
x = input('x='); y = input('y='); t=x; x=y; y=t;
disp ([x,y]);
>> Untitled2 x=4 y=8
8 4
5,一个三位整数各位数字的立方和等于该数本身则称为水仙花数。输出全部水仙花数
an = []; for i = 100:999
a = floor(i/100);%°ù?? b = floor((i-100*a)/10);%ê??? c = mod(i,10);%???? if i == a^3 + b^3 +c^3 an = [an,i]; end end an
>> Untitled2
an =
153 370 371 407
6,求100到200之间第一个能被21整除的整数
for i=100:200 if rem(i,21)==0 break end end i
>> Untitled2 i =
105
7,有一名学生,期末有5门功课要考试,可用的复习时间有18小时。假定这五门课程分别是数学、英语、计算机基础、画法几何和专业概论。如果不复习直接参加考试,这五门功课预期的考试成绩分别为65分、60分、70分、60分和65分。复习以1小时为一单元,每增加1小时复习时间,各门功课考试成绩就有可能提高,每复习1小时各门功课考试成绩提高的分数分别为3分、4分、5分、4分和6分。问如何安排各门功课的复习时间可使平均成绩不低于80分,并且数学和英语成绩分别不低于70分和75分。
f=[1 1 1 1 1];
A=[1 1 1 1 1; -3 -4 -5 -4 -6; -3 0 0 0 0; 0 -4 0 0 0; 3 0 0 0 0; 0 4 0 0 0; 0 0 5 0 0; 0 0 0 4 0; 0 0 0 0 6]; b=[18;-80;-5;-15;35;40;30;40;35]; lb=zeros(6,1)
[x,fval]=linprog(f,A,b,[],[],lb)
x =
1.6667 3.7500 5.0000 0.0000 5.8333
fval =
16.2500
8.
9,一个正整数有可能可以被表示为 n(n>=2) 个连续正整数之和,如:
15=1+2+3+4+5
15=4+5+6 15=7+8
请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。 x=input('请输入任何一个正整数:'); for i=1:x
for j=i+1:x
if sum(i:j)==x
disp(num2str(i:j))
disp(['该整数序列长度为',num2str(j-i+1)]) fprintf('\\n') end end end
>> Untitled2
请输入任何一个正整数:15 1 2 3 4 5
该整数序列长度为5
4 5 6
该整数序列长度为3 7 8
该整数序列长度为2
10,n个人围成一圈,每人有一个各不相同的编号,编号从1取到n并按顺时针方向排成一圈,选择编号为1的那个人作为起点,然后顺时针从1到k数数,每数到k的人退出圈子,圈子缩小,然后从下一个人继续从1到k数数,重复上面过程。在给出n和k的情况下,求最后推出圈子的那个人原来的编号。
思路:按照上面的算法让人退出圈子,直到有n-1个人推出圈子,然后得到最后一个退出圈子的人的编号。 n=input('总人数:');
m=input('数到第几个人开始出列:'); num=1:n;%用1:n表示n个人 f=zeros(1,n);
a=1;%表示总共需要出去n个人 j=1;%用来表示数m次
ind=0;%对应num中的下标,即某个人 while a<=n while j<=m ind=ind+1;
if ind>length(num) ind=1; end j=j+1;
end
f(a)=num(ind);%把要剔除的人存在f中 num(ind)=[]%剔除这个人 ind=ind-1;%剔除人下标减1 j=1; a=a+1; end
f >> Untitled2 总人数:5
数到第几个人开始出列:2
num =
1 3 4 5
num =
1 3 5
num =
3 5
num =
3
num =
Empty matrix: 1-by-0 f =
2 4 1 5 3
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库上机练习3在线全文阅读。
相关推荐: