CUIT 2016 新生训练题第一周 A - 大菲波数
来源:互联网 发布:好莱坞演技 知乎 编辑:程序博客网 时间:2024/05/29 18:44
A - 大菲波数
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Description
Fibonacci数列,定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
Input
输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。
Output
输出为N行,每行为对应的f(Pi)。
Sample Input
512345
Sample Output
11235
题解:一个高精度加法的纯模拟,这道题强调的是要对数据进行预处理,使得查询的过程复杂度降低到O(1)。
#include<stdio.h>int Sheet[1005][10000];void Make_Sheet(){ Sheet[1][0]=1; Sheet[2][0]=1; for(int i=3;i<=1000;i++) { for(int j=0;j<1000;j++) { Sheet[i][j]+=Sheet[i-2][j]+Sheet[i-1][j]; if(Sheet[i][j]>9) { Sheet[i][j+1]+=Sheet[i][j]/10; Sheet[i][j]%=10; } } }}int main(){ int Turns,Search_Num,i; scanf("%d",&Turns);//Turns指的运行回合数. Make_Sheet();//打表为了避免重复操作,对所有数字进行预处理,是的所有查找都是O(1)复杂度 for(i=1;i<=Turns;i++) { scanf("%d",&Search_Num); int length=2000; while(!Sheet[Search_Num][length]) length--;//找到最高位所在坐标 for(int i=length;i>=0;i--) {printf("%d",Sheet[Search_Num][i]);} printf("\n"); } return 0;}
0 0
- CUIT 2016 新生训练题第一周 A - 大菲波数
- CUIT 2016 新生训练题第一周 C - Bull Math
- CUIT 2016 新生训练题第一周 E - N!
- CUIT 2016 新生训练题第一周 D-Text Reverse
- CUIT 2016 新生训练题第一周 B - Adding Reversed Numbers
- 第一周训练 E题
- 大二训练第一周 A - The Minimum Length
- 暑假第一周 A
- 2015-2016 下半学期 第一周 训练
- 中国(北方)大学生程序设计训练赛(第一周)-A(生成树计数)
- java编程技能训练(第一周)
- 第一周-入门训练-序列求和
- 新高一第一周训练小计
- 北方大学训练赛,第一周
- 机器学习训练营---第一周总结
- 大明A+B(第一周c题)大数相加
- 菜鸟BIT程序设计课A题日志第一周
- cuit校赛--sort 第K个数
- usaco Home on the Range
- ssl双向认证和单向认证原理
- 7种实现下划线的方法
- 1619-7 张良 十二月四号总结 [连续第六十五天]
- 线性表之顺序存储结构(C语言动态数组实现)
- CUIT 2016 新生训练题第一周 A - 大菲波数
- 关于Base64编码中的‘+’ 和‘/’字符处理
- GoogleDrive上传、下载word,查看历史版本
- Spring Bean装配之基于Java的容器注解说明——@ImportResource和@Value
- 简单的游标
- 第14周 项目6-判断是否为二叉排序树
- 数组在内存中的变化
- MYSQL自己平时会用到的一些函数(不间断更新)
- 关于审题