| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1047 人关注过本帖
标题:今天考二级,被绊脚了,请教一下
只看楼主 加入收藏
baifenghan
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:258
专家分:952
注 册:2006-3-17
收藏
得分:0 
[经验]抱歉

今天上面的帖子有问题,说的不对,抱歉,今天三级,有点晕。

2006-04-02 23:03
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
收藏
得分:0 

这个题用递归大数不适用,循环次数达到天文数字,
如果是走楼梯算法结果不正确啊!条件应该是 if(t>=0 || t<=2) return t;
下面是用循环计算的代码,太快了:

int fun(int t)
{
int a[3] = { 0,1,2};
int s=0;
int i;
for(i=0;i<t;i++)
{
a[s] = a[(s+2) % 3] + a[(s+1) % 3];
s = (s+1) % 3;
}
return a[s];
}

2006-04-03 09:29
一一凌
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-2-16
收藏
得分:0 
   程序是对的,没有疑问,只是运算量实在太大了
2006-04-03 12:21
Cihor
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-3-27
收藏
得分:0 

12楼的大哥确实厉害,运算速度神快,顶一下,供大家学习
不过我觉得有个地方应该改一下,这样t为0和1时都能输出1,不知对否
int fun(int t)
{
int a[3] = {1,1,2};
int s=0;
int i;
for(i=0;i<t;i++)
{
a[s] = a[(s+2) % 3] + a[(s+1) % 3];
s = (s+1) % 3;
}
return a[s];
}


好好学习,天天向上
2006-04-03 23:55
快速回复:今天考二级,被绊脚了,请教一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038339 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved