杭电oj 1005

作者: 橘子煲汤 | 来源:发表于2019-01-30 20:58 被阅读0次

杭电oj 1005

这看上去是一个简单的递归问题 但是实际操作才发现 按照普通递归的方法是会出现超过内存占用限制的情况

但是还是粘上代码吧。

#include<iostream>
using namespace std;
int fn(int A,int B,int n)
{
    if(n==1||n==2)
    {
    return 1;   
    }
    return (A*fn(A,B,n-1)+B*fn(A,B,n-2))%7; 
}
int main()
{
    int a,b,n;
    while(cin>>a>>b>>n)
    {
        if(a==0&&b==0&&n==0)
            return -1;
        cout<<fn(a,b,n)<<endl;  
    }
}

这是改进的ac代码

#include<iostream>
using namespace std;
int main()
{
int arr[50]={1,1};
int a,b,n;
while(cin>>a>>b>>n)
{
if(a==0||b==0||n==0)
  {
   return -1;
  }
  for(int i=2;i<49;i++)
 {
 arr[i]=(a*arr[i-1]+b*arr[i-2])%7;//直接将所有的情况存成一个数组
 }
cout<<arr[(n-1)%49];
}
return 0;
}

相关文章

  • 杭电oj 1005

    杭电oj 1005 这看上去是一个简单的递归问题 但是实际操作才发现 按照普通递归的方法是会出现超过内存占用限制的...

  • 杭电oj-1005(Number Sequence)

    Problem Description Input Output Sample Input Sample Outp...

  • 杭电oj-1005-Number Sequence

    其实写完下面的程序,就知道肯定过不了,内存消耗太大了,虽然已经用了尾递归,于是只好另寻出路。 于是,发现因为取7的...

  • 杭电oj 第11页 java版答案

    杭电oj 第2000- 2099 题 全答案杭电oj 第十一页答案 具体路径在 src/main/java/com...

  • 杭电ACM1005

    杭电ACM1005 这道题一开始我采用的是递归的方法求解,也能够完美运行,但是提交到OJ之后,提示内存溢出,这说明...

  • 航电oj 1005

    这道题初看可以直接递归解决,但是 n 的取值过大时会发生栈溢出,无法解决这一问题。仔细思考之后发现,输入A、B、n...

  • 01背包

    ACM题-杭电OJ2602参考 Problem Description Many years ago , in T...

  • 杭电oj 1004

    杭电oj的1004 从这个题开始 我会把自己ac的题目放在简书上方便自己查看 也顺便帮助别人吧

  • 杭电-1005 Number Sequence

    很自然想到递归,写完注意到n的取值( 1 <= n <= 100,000,000),递归肯定要报内存错了。 然后想...

  • 杭电OJ-2019

    【转】网上使用qsort函数排序:http://blog.sina.com.cn/s/blog_ac5ed4f30...

网友评论

    本文标题:杭电oj 1005

    本文链接:https://www.haomeiwen.com/subject/glthsqtx.html