HDU 1005 Number Sequence(循环节) *
2017-02-15 22:35
387 查看
思路来自:http://blog.sina.com.cn/s/blog_a16dd6d101014pjy.html
因为首先,任意一个数mod7结果为0到6这7个值,两个数就有7*7种组合
所以只要计算50此肯定会有个循环
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cctype>
#include <cmath>
#include <sstream>
#include <vector>
using namespace std;
#define REP(i,a,b) for(int i=a;i<(int)b;i++)
#define REPD(i,a,b) for(int i=a;i>=(int)b;i--)
int f[50+5];
int main()
{
int a, b;
int n, i;
while(1)
{
memset(f, 0, sizeof(f));
scanf("%d%d%d", &a, &b, &n);
if(a==0 && b==0 && n == 0) break;
f[0] = f[1] = 1;
if(n == 1 || n ==2 )
{
printf("1\n");
continue;
}
for(i = 2; i<50; i++)
{
f[i] = (a * f[i-1] + b * f[i-2])% 7;
if(f[i-1] == 1 && f[i-2] == 1 && i != 2 ) break;
}
printf("%d\n",f[(n-1)%(i-2)]);
}
return 0;
}
因为首先,任意一个数mod7结果为0到6这7个值,两个数就有7*7种组合
所以只要计算50此肯定会有个循环
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cctype>
#include <cmath>
#include <sstream>
#include <vector>
using namespace std;
#define REP(i,a,b) for(int i=a;i<(int)b;i++)
#define REPD(i,a,b) for(int i=a;i>=(int)b;i--)
int f[50+5];
int main()
{
int a, b;
int n, i;
while(1)
{
memset(f, 0, sizeof(f));
scanf("%d%d%d", &a, &b, &n);
if(a==0 && b==0 && n == 0) break;
f[0] = f[1] = 1;
if(n == 1 || n ==2 )
{
printf("1\n");
continue;
}
for(i = 2; i<50; i++)
{
f[i] = (a * f[i-1] + b * f[i-2])% 7;
if(f[i-1] == 1 && f[i-2] == 1 && i != 2 ) break;
}
printf("%d\n",f[(n-1)%(i-2)]);
}
return 0;
}
相关文章推荐
- HDU 1005 Number Sequence (循环节)
- HDU 1005 Number Sequence (寻找循环节)
- HDU 1005 Number Sequence 打表找循环节
- HDU 1005 Number Sequence【循环节(取模)】
- HDU 1005 Number Sequence (循环节)
- HDU 1005 Number Sequence (找循环节)
- NYOJ 427 & HDU 1005 Number Sequence(找循环节)
- NYOJ 427 & HDU 1005 Number Sequence(找循环节)
- HDU 1005 Number Sequence【循环节】
- hdu 1005 Number Sequence(智寻循环节)
- HDU 1005 Number Sequence (循环节)
- hdu 1005 Number Sequence(循环节)
- HDU 1005 Number Sequence(矩阵快速幂、循环节)
- HDU 1005 Number Sequence
- HDU 1005 Number Sequence
- hdu—1005 Number Sequence
- hdu 1005 Number Sequence
- hdu 1005 Number Sequence
- HDU 1005 — Number Sequence
- HDU-1005- Number Sequence (矩阵快速幂)