zoj 2105 (数学之,找规律结)
2013-07-19 09:37
162 查看
点击打开链接
//zoj f[1]=1,f[2]=1,f
=(a*f[n-1]+b*f[n-2])%7
//因为%7,所以肯定有规律,有因为fn有前两项决定,
//所以循环结<=7*7=49,当找到规律结m的时候
//不能直接用n%m,因为当n==m时,f
=f[0],f[0]无用
//应用f[(n-1)%m+1]!!!
#include"stdio.h"
#include"string.h"
#include"math.h"
int A[50];
void fun(int a,int b,int n)
{
int i;
A[0]=A[1]=A[2]=1;
for(i=3;i<=49;i++)
{
A[i]=(a*A[i-1]+b*A[i-2])%7;
if(A[i]==A[i-1]&&A[i]==1)break;
}
printf("%d\n",A[(n-1)%(i-2)+1]);
}
int main()
{
int i;
int n,a,b;
while(scanf("%d%d%d",&a,&b,&n)!=-1&&(n+a+b))
fun(a,b,n);
return 0;
}
//zoj f[1]=1,f[2]=1,f
=(a*f[n-1]+b*f[n-2])%7
//因为%7,所以肯定有规律,有因为fn有前两项决定,
//所以循环结<=7*7=49,当找到规律结m的时候
//不能直接用n%m,因为当n==m时,f
=f[0],f[0]无用
//应用f[(n-1)%m+1]!!!
#include"stdio.h"
#include"string.h"
#include"math.h"
int A[50];
void fun(int a,int b,int n)
{
int i;
A[0]=A[1]=A[2]=1;
for(i=3;i<=49;i++)
{
A[i]=(a*A[i-1]+b*A[i-2])%7;
if(A[i]==A[i-1]&&A[i]==1)break;
}
printf("%d\n",A[(n-1)%(i-2)+1]);
}
int main()
{
int i;
int n,a,b;
while(scanf("%d%d%d",&a,&b,&n)!=-1&&(n+a+b))
fun(a,b,n);
return 0;
}
相关文章推荐
- Codeforces Round #328 (Div. 2) B. The Monster and the Squirrel(数学规律)
- uva 10706 Number Sequence(数学规律)
- 【数学相关、规律】Codeforces 696B Puzzles
- Codeforces 715A & 716C Plus and Square Root【数学规律】 (Codeforces Round #372 (Div. 2))
- leetcode -- 605. Can Place Flowers 【边界处理 + 数学规律】
- hdu1210Eddy's 洗牌问题(数学规律)
- 数学 | 推理 | 思维 | 打表 | 找规律 | 贪心 | 暴力
- HDOJ - 1005 - Number Sequence(规律,数学、非常规)
- hdu 2114 找规律的数学题目
- Codeforces Round #260 (Div. 2) B. Fedya and Maths (数学规律)
- SGU 105 数学找规律
- 357. Count Numbers with Unique Digits 数学 找规律
- QDUoj GZS的三角形 棋盘里的数学 (数学规律题)
- acm常见数学规律
- HDU - 1060 Leftmost Digit (数学取对数)规律
- zoj 3872 (一切找规律都是基于数学!)
- HDU--5761-Rower Bo-数学推导(也可以找规律)
- GOJ 1455 数学(规律模拟递推)
- UVA 12683 Odd and Even Zeroes(数学—找规律)
- CodeForces 616E(数学规律)