杭电1005

此题也是一道观察规律的问题!!!不可能直接算,否这肯定超时!呵呵!!
先假设a=3,b=4,那么结果是:
0,4,5,3,1,1;呵呵!你是否发现循环了哈!!
那就对了!问题不就解决了吗?哈!
自己创建一个数组来厨房这个循环不就ok了吗?哈哈!
let's go!!!


#include<iostream>
using namespace std;
int main()
{
  int a,b,n,A[50],i;
  while(cin>>a>>b>>n)
  {
   if(a==0&&b==0&&n==0)
    break;
   else
   if(n<3)
    cout<<"1"<<endl;
   else
   {
          A[1]=1;
    A[2]=1;
   
    for(i=3;i<=49;i++)
 {
  A[i]=(a*A[i-1]+b*A[i-2])%7;
         if(A[i]==1&&A[i-1]==1)
    break;
 }
 n=n%(i-2);
    if(n==0)
    printf("%d\n",A[i-2]);
    else
     printf("%d\n",A[n]);
  } 
  }
  return 0;
  }

posted on 2012-11-05 18:00  @ 小浩  阅读(356)  评论(0编辑  收藏  举报