请用MATLAB解决这个问题:猴子吃桃问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 00:05:32
请用MATLAB解决这个问题:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天又将剩下的桃子吃了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到到第十天早上想再吃,只剩一个桃子。求第一天共摘多少桃子?
还有一个matlab的问题:编一个函数统计字符串中单词的个数

分享知识,也是帮助别人。

1).首先,应建立m文件,不妨命名为fun1.m好了:
function y=fun1(x)
y=x-(1/2*x+1); %这是每天剩下的桃子数
存盘,保存在work文件夹下;

调用:
%第九天剩下一个
for x=1:10000
y=x;
for i=1:9
y=fun1(y);
end
if y==1
x
break
end
end

最后,运行的结果是:
x =

1534

2).编一个函数统计字符串中单词的个数
你的意思是:一个字符串中有几个单词?
那么把它转换成0,1,再让它来数0的个数好了。

建立通用的m文件,命名fun2.m:
function k=fun2(s)
[m,n]=size(s); x=isletter(s);
if x(1)+x(n)==2 %若该字符串首尾均是字母
k=1;
elseif x(1)+x(n)==1 %若该字符串首或尾有一个且仅有一个是字母
k=0;
elseif x(1)+x(n)==0 %若该字符串首尾均不是字母(比如标点符号或空格)
k=-1;
end
for i=1:n
if x(i)==0
k=k+1;
end
end
同样,存盘,保存在work文件夹下;

调用验证:
s=' That is something nice.Will you come and play with me?'; %首为空格尾为标点,均非字母
k=fun2(s)

得到:
k=
11

s='Hello,every one!'; %尾部是标点