1005 Number Sequence

来源:互联网 发布:汉语语法知乎 编辑:程序博客网 时间:2024/06/07 16:11

1005 Number Sequence

#include <iostream>#include<vector>using namespace std;int A,B;vector<int> vec;bool flag[7][7];void init(){    int i,j;    for(i=0;i<7;i++)    {        for(j=0;j<7;j++)        {            flag[i][j]=false;        }    }}int main(){    int index,j,n,cnt=1,f;    while(cin>>A>>B>>n)    {        if(A==0&&B==0&&n==0)        {            break;        }else{            init();            vec.clear();            vec.push_back(1);            vec.push_back(1);            cnt=1;            while(1)            {                f=(A*vec.at(cnt)+B*vec.at(cnt-1))%7;                vec.push_back(f);                ++cnt;                if(flag[vec.at(cnt)][vec.at(cnt-1)]==true)                {                    break;                }                flag[vec.at(cnt)][vec.at(cnt-1)]=true;            }            index=cnt;            for(j=0;;j++)            {                if(vec.at(j)==vec.at(index-1)&&vec.at(j+1)==vec.at(index)){                    break;                }            }            if(n<=cnt+1)            {                cout<<vec.at(n-1)<<endl;            }else{                n=n-j;                cnt=cnt-j-1;                n=n%cnt;                if(n==0){                    cout<<vec.at(j+cnt-1)<<endl;                }else{                    cout<<vec.at(n+j-1)<<endl;                }            }        }    }    return 0;}


0 0
原创粉丝点击