[经验]抱歉
今天上面的帖子有问题,说的不对,抱歉,今天三级,有点晕。
今天上面的帖子有问题,说的不对,抱歉,今天三级,有点晕。
这个题用递归大数不适用,循环次数达到天文数字,
如果是走楼梯算法结果不正确啊!条件应该是 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];
}
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];
}