Lingt OJ 1006
来源:互联网 发布:欧德堡牛奶 知乎 编辑:程序博客网 时间:2024/05/21 09:59
1006
int a, b, c, d, e, f;
int fn( int n ) {
if( n == 0 ) return a;
if( n == 1 ) return b;
if( n == 2 ) return c;
if( n == 3 ) return d;
if( n == 4 ) return e;
if( n == 5 ) return f;
return( fn(n-1) + fn(n-2) + fn(n-3) + fn(n-4) + fn(n-5) + fn(n-6) );
}
int main() {
int n, caseno = 0, cases;
scanf("%d", &cases);
while( cases-- ) {
scanf("%d %d %d %d%d %d %d", &a, &b, &c, &d, &e, &f, &n);
printf("Case %d: %d\n", ++caseno, fn(n) % 10000007);
}
return 0;
}
Input
Input starts with an integer T (≤ 100),denoting the number of test cases.
Each case contains seven integers, a, b, c, d, e, f and n.All integers will be non-negative and0 ≤ n ≤ 10000 and the eachof the others will be fit into a 32-bit integer.
Output
For each case, print the output of the given code. The given code may have integer overflow problem in the compiler, so be careful.
Sample Input
Output for Sample Input
5
0 1 2 3 4 5 20
3 2 1 5 0 1 9
4 12 9 4 5 6 15
9 8 7 6 5 4 3
3 4 3 2 54 5 4
Case 1: 216339
Case 2: 79
Case 3: 16636
Case 4: 6
Case 5: 54
这道题目涉及到超时跟数据溢出。。。。
#include<stdio.h>
int a, b, c, d, e, f,sum[10001],i;
int fn( int n ) {
sum[0]=a%10000007;sum[1]=b%10000007;sum[2]=c%10000007;sum[3]=d%10000007;sum[4]=e%10000007;sum[5]=f%10000007;
for(i=6;i<=10000;i++){sum[i]=(sum[i-1]+sum[i-2]+sum[i-3]+sum[i-4]+sum[i-5]+sum[i-6])% 10000007;}
return sum[n];
}
int main() {
int n, caseno = 0, cases;
scanf("%d", &cases);
while( cases-- ) {
scanf("%d %d %d %d %d %d %d", &a, &b, &c, &d, &e, &f, &n);
printf("Case %d: %d\n", ++caseno,fn(n));
}
return 0;
}
在防止数据溢出过程中发现取膜是的可以随便拆项,哈哈;
代码效率方面我相信只要仔细想下,就可得出结论。。。。。
刚发现一位大神,他的c代码如下:
- #include <stdio.h>
- int arr[6];
- int main()
- {
- int test,n,i,caseno=0;
- scanf("%d",&test);
- while (test--)
- {
- scanf("%d %d %d %d %d %d %d",&arr[0],&arr[1],&arr[2],&arr[3],&arr[4],&arr[5],&n);
- for (i=6;i<=n;++i)
- arr[i%6]=((long)arr[(i-1)%6]+arr[(i-2)%6]+arr[(i-3)%6]+arr[(i-4)%6]+arr[(i-5)%6]+arr[(i-6)%6])%10000007;
- printf("Case %d: %d\n",++caseno,arr[n%6]%10000007);
- }
- return 0;
- }
- Lingt OJ 1006
- Lingt oj 1414 - February 29
- Lingt oj 1041 - Road Construction(最小生成树)
- 【九度OJ】 1006
- 九度OJ---1006
- 九度oj-1006
- 九度oj 1006
- 杭电oj 1006
- 九度OJ 1006
- 烟台大学 oj 1006
- OJ
- OJ
- OJ
- OJ
- OJ
- OJ
- oj
- oj
- QTP sky下Native Properties和Identification Propertie的区别
- 印度加强网络管理或部署网猫软件屏蔽Facebook
- english-idiom-20110129
- 黑马程序员_自定义浏览器访问tomcat
- 1.Hello World Using Struts 2
- Lingt OJ 1006
- 设计模式总结(一)
- 以后用的着的小站
- shell编程
- sharepoint2010右侧滚动条的问题 .
- 常用内存数据库介绍
- base-arithcitecture-4 levels
- 转 -- 开源数据库 Sharding 技术 (Share Nothing)
- 浏览器缓存