| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1088 人关注过本帖, 1 人收藏
标题:用了递归会超时啊,能优化一下吗?
取消只看楼主 加入收藏
glglzb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:22
注 册:2011-10-12
结帖率:93.33%
收藏(1)
已结贴  问题点数:20 回复次数:5 
用了递归会超时啊,能优化一下吗?
A number sequence is defined as:
f(1) = 1;
f(2) = 1;
f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.
Given A, B, and n, you are to calculate the value of f(n)

输入格式
There are multiple lines of input. Every line is a test case. Each test case contains 3 integers A, B, and n on a single line (1 <= A, B <= 1000, 1 <= n <= 10000). Three zeros signal the end of input and this test case is not to be processed.
输出格式
For each test case, print the value of f(n) on a single line.
样例输入
 将样例输入复制到剪贴板
1 1 3
1 2 10
0 0 0样例输出
2
5
这是我的代码:
#include<stdio.h>
int fab (int a,int b,int c);
int main()
{
    int a,b,c;
    while(1)
    {
        scanf("%d %d %d",&a,&b,&c);
        if(a==0&&b==0&&c==0)
            break;
        else
        {
            printf("%d\n",fab(a,b,c));
        }
    }
}
int fab (int a,int b,int c)
{
    if(c==1||c==2)
    return 1;
   
    else  return (a*fab(a,b,c-1)+b*fab(a,b,c-2))%7;

}
能不能优化一下?递归会超时啊。谢谢。
搜索更多相关主题的帖子: single multiple sequence number 
2012-02-10 21:30
glglzb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:22
注 册:2011-10-12
收藏
得分:0 
抱歉,检测时间是1s。
2012-02-10 21:41
glglzb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:22
注 册:2011-10-12
收藏
得分:0 
回复 4楼 Devil_W
那怎么优化啊?
2012-02-10 22:03
glglzb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:22
注 册:2011-10-12
收藏
得分:0 
谢谢
原来优化 在很大程度上是  找到一种新的解题方法   
数学要补课啦
谢谢
2012-02-10 22:35
glglzb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:22
注 册:2011-10-12
收藏
得分:0 
回复 11楼 mahuaguan
是啊  
2012-05-20 01:22
glglzb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:22
注 册:2011-10-12
收藏
得分:0 
回复 11楼 mahuaguan
是啊
2012-05-31 13:52
快速回复:用了递归会超时啊,能优化一下吗?
数据加载中...
 
   



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

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