- 积分
- 57
- 注册时间
- 2006-1-10
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2009-4-12 23:23:34
|
显示全部楼层
来自 北京
本帖最后由 rocwoods 于 2009-4-13 00:07 编辑
我是这么想的,可以将满足条件的数按前面两个数字分成不同的类(因为每类完全由前面两个数字决定)。即10,11,12,...18;20,...27;...;90
一共有9+8+7...+1 = 45类。含有最多这样数字的类是'10'类,一共有101,1011,10112,101123,1011235,10112358六个数字。可以用循环判断这45类各含有多少个满足条件的数字。结果总和是84个数字。以下是代码:
- a = (10:99)';
- aa = [floor(a/10),mod(a,10)];
- aa = aa(sum(aa,2)<10,;
- data = cell(size(aa,1),1);
- for k = 1:length(data)
- temp = aa(k,;
- n = 3;
- temp(n) = temp(n-2)+temp(n-1);
- while temp(n-1)+temp(n)<10
- n=n+1;
- temp(n) = temp(n-2)+temp(n-1);
- end
- data{k} = temp;
- end
- EveryNum = cellfun(@(x) length(x)-2,data);%每类满足条件的数字的个数
- TotalNum = sum(EveryNum)
复制代码 |
评分
-
1
查看全部评分
-
|