标签:turn 多个 enc 描述 center tom 测试用例 数字 一个
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
问题描述
数字序列的定义如下:
f(1)= 1,(2)= 1,f(n)=(* f(n - 1)+ B * f(n - 2)) mod 7.
已知A、B和n,你要计算f(n)的值。
输入
输入由多个测试用例组成。
每个测试用例包含3个整数A、B和n在一行(1 <= A,B <= 1000,1 <= n <= 1亿)。
3个零信号,输入结束,这个测试用例不被处理。
输出
对于每个测试用例,在一行上打印f(n)的值。
1 #include <stdio.h> 2 3 int BOW(int A,int B,int n); 4 5 int main() 6 { 7 int A,B,n,m; 8 scanf("%d%d%d",&A,&B,&n); 9 while(A!=0&&B!=0&&n!=0) 10 { 11 m=BOW(A,B,n); 12 printf("%d\n",m); 13 scanf("%d%d%d",&A,&B,&n); 14 } 15 return 0; 16 } 17 18 int BOW(int A,int B,int n) 19 { 20 if(n==3) 21 return (A*1+B*1)%7; 22 else if(n==4) //一开始这里没有考虑到。因为f(4)的时候,表达式中有一个f(2),所以失败了 23 return (A*BOW(A,B,n-1)+B*1)%7; 24 else 25 return ((A*BOW(A,B,n-1)+B*BOW(A,B,n-2))%7); 26 }
标签:turn 多个 enc 描述 center tom 测试用例 数字 一个
原文地址:http://www.cnblogs.com/BOW1203/p/7811170.html