| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 602 人关注过本帖
标题:[讨论]超时了~~怎么修改呀~~谢谢了
只看楼主 加入收藏
zgjncn88
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-9
收藏
 问题点数:0 回复次数:2 
[讨论]超时了~~怎么修改呀~~谢谢了

就是f(1)=1 ,f(2)=1
f(n)=(A*f(n-1)+B*f(n-2)) mod 7. ,给你A,B和n,你要算出f(n)的值,mod 表示求模运算,A mod B 表示A除以B的余数,已知(0<A,B<100;0<n<10000)
输入A,B,n的值,输出结果
以下是我的程序,请高人指点
#include<iostream>
using namespace std;
int A,B,n;
int f(int k)
{

if(k==1) return 1;
if(k==2) return 1;
else
{

return (A*f(k-1)+B*f(k-2))%7;

}
}
int main()
{
cin>>A>>B>>n;
cout<<f(n)<<endl;
return 0;
}
想想是一道很简单的题目啊,居然会超时不出来,汗死了~~~n一大就超时,上了30就会超时~~怎么办呢?谢谢了哈~~~

搜索更多相关主题的帖子: 超时 
2007-01-09 16:28
sbivfh
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-1-2
收藏
得分:0 
这是个递归调用啊,n越大,那么调用的次数就越多啊,时间就越长
2007-01-09 16:59
zgjncn88
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-9
收藏
得分:0 
哦,呵呵~~~知道啦~~谢谢哈!!我用for循环做了,嘿嘿~~
2007-01-09 18:34
快速回复:[讨论]超时了~~怎么修改呀~~谢谢了
数据加载中...
 
   



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

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