2012-2013 ACM-ICPC, NEERC, Central Subregional Contest C Sequence (打表)

打个表找找规律,到24445的时候乘2以后产生了0出现循环。

一般地,判断循环节是否存在可以用Floyd判圈算法。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int ans[]
{
-1
,1
,2
,4
,8
,16
,23
,46
,29
,58
,116
,223
,446
,289
,578
,1156
,1223
,2446
,2489
,4789
,5789
,11578
,12356
,12247
,24449
};

int b[]
{
48889
,77789
,155578
,111356
,122227
,244445
};

int main()
{

    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    int n ;
    scanf("%d",&n);
    printf("%d
",n>=25?b[(n-25)%6]:ans[n]);
    return 0;
}
原文地址:https://www.cnblogs.com/jerryRey/p/4780477.html