主题:MATLAB的编程问题,急!!!
aiseno
[专家分:0] 发布于 2006-07-16 12:03:00
用MATLAB编写以下程序:
1、取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。
2、输入两个正整数m和n,求其最大公约数和最小公倍数。
3、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
4、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
5、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
6、求出100-999范围内的水仙花数。所谓水仙花数即一个三位数,该数等于其各位数字的立方和。 如:153=13+53+33=1+125+27
7、找出1-10000范围内的完数。所谓完数即该数等于其真因数的和 如:28=1+2+4+7+14
8 、魔方矩阵magic(n)的特点是:其元素由1到nn的自然数组成,且每行、每列及两对角线上的元素之和均等于(n3+n)/2。求n=9时的魔方矩阵。并且,找到此矩阵中所有被7整除的元素,在其位置上标以1,其余位置标以0。求此矩阵。
9、100元钱换成零钱(包括50元、20元、10元、5元、2元和1元六种面值),共有多少种不同的换法?(如50*2,20+10*7+5*2,100*1等都是不同的换法)。
希望高手们及时给小弟答案,急!!!谢谢
回复列表 (共21个回复)
沙发
zhangenter [专家分:740] 发布于 2006-07-16 14:47:00
第8题:
A=magic(9);
A(mod(A,7)~=0)=0;
A(A~=0)=1;
其他题怎么看都是C程序题,都不难的,自己动动脑筋
板凳
可可豆1206 [专家分:0] 发布于 2006-07-16 16:00:00
第五题
D=0
for n=1:10
Dn=(100)*1/2^n
D=D+Dn
end
D为10次的总距离,Dn为第十次的距离[em2]
3 楼
可可豆1206 [专家分:0] 发布于 2006-07-16 16:05:00
我回帖为什么总是出现乱码?
第五题
D=0
for n=1:10
Dn=(100)*1/2^n
D=D+Dn
end
D为10次的总距离,Dn为第十次的距离[em2]
4 楼
shage001314 [专家分:10] 发布于 2006-07-20 20:38:00
a=input('请大哥输入一个整数a=');
b=input('请大哥输入一个整数 b=');
c=a;
d=b;
while a~=b
if a>b
a=a-b;
else
b=b-a;
end
end
fprintf('a 和b的最小公约数是:\n%d\n',a);
fprintf('a 和b的最小公倍数是:\n%d\n',c*d/a);
5 楼
shage001314 [专家分:10] 发布于 2006-07-20 22:33:00
第一题:
a=input('请输入你想要验证的正整数a=');
i=1;
while a~=1
if mod(a,2)==0
M(1,i)=a/2;
a=a/2;
i=i+1;
else
M(1,i)=3*a+1;
a=3*a+1;
i=i+1;
end
end
d=1;
for j=1:length(M)
if j<=(length(M)-1);
fprintf('%d->',M(1,j));
if mod(d,10)==0&&d<=length(M)
fprintf('\n');
end
d=d+1;
else
fprintf('%d\n',M(1,j));
end
end
6 楼
scollen [专家分:50] 发布于 2006-07-21 00:32:00
第九题:a1 a2 a3 a4 a5 a6 分别表示50 20 10 50 2 1元人民币的张数!
matlab的M文件:
c=0;
for a1=0:2
for a2=0:5
for a3=0:10
for a4=0:20
for a5=0:50
for a6=0:100
if(50*a1+20*a2+10*a3+5*a4+2*a5+a6==100)
b=[a1 a2 a3 a4 a5 a6]; %不加";"号则显示每种方案!
c=c+1;
end
end
end
end
end
end
end
c
得出结果:c=
4562
种方案!!!
7 楼
scollen [专家分:50] 发布于 2006-07-21 00:50:00
第四题:
matlab M文件:
function y=tuzishu(n)
%n为输入的月数,求n个月后的兔子的对数!
f(1)=1
f(2)=1
for i=3:n
f(i)=f(i-2)+f(i-1)
end
8 楼
shage001314 [专家分:10] 发布于 2006-07-21 12:06:00
第六题:
clear;
j=1;
for i=100:999
c=mod(i,10);
b=mod((i-c)/10,10);
a=mod((i-10*b-c)/100,10);
if i==(a^3+b^3+c^3)
M(1,j)=i;
j=j+1;
end
end
fprintf('100到999内的水仙花数是:\n');
for h=1:length(M)
fprintf('%d ',M(1,h));
end
fprintf('\n');
9 楼
scollen [专家分:50] 发布于 2006-07-21 14:24:00
第二题:公因数,公倍数!
function y=gongyinbei(m,n)
if(m>n)
k=n;
else
k=m;
end
for i=1:k
if (mod(m,i)==0&mod(n,i)==0)
x(i)=i;
end
end
zuidagongyinshu=x(1);
s=size(x);
for j=1:s(2)
if (zuidagongyinshu<x(j))
zuidagongyinshu=x(j);
end
end
t1=m/zuidagongyinshu;t2=n/zuidagongyinshu;
zuixiaogongbeishu=t1*t2*zuidagongyinshu
zuidagongyinshu
10 楼
shage001314 [专家分:10] 发布于 2006-07-21 18:48:00
第七题:
h=1;
for i=2:10000
for j=1:i
if mod(i,j)==0
M(1,h)=j;
if j^2==i
h=h+1;
M(1,h)=j;
end
h=h+1;
end
end
if 2*i==sum(M);
fprintf('%d=',i);
for k=1:(length(M)-2)
fprintf('%d+',M(1,k));
end
fprintf('%d',M(1,(length(M)-1)));
fprintf('\n');
end
h=1;
M=[];
end
运行结果:
6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
8128=1+2+4+8+16+32+64+127+254+508+1016+2032+4064
不过很慢啊!!!!
我来回复