博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大菲波数 【杭电-HDOJ-1715】 附题+具体解释
阅读量:5907 次
发布时间:2019-06-19

本文共 1202 字,大约阅读时间需要 4 分钟。

/*

大菲波数
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11168    Accepted Submission(s): 3782

Problem Description
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

5
1
2
3
4
5
Sample Output
1
1
2
3
5

#include
#include
int a[1010][1010];int main(){ int T,n,m,i,j,k,count; scanf("%d",&T); while(T--){ scanf("%d",&n); memset(a,0,sizeof(a)); a[1][1]=1; a[2][1]=1; for(i=3,k=1;i<=n;i++){ for(j=1,count=0;j<=k;j++){ //易出错:j=i+1,j<=i a[i][j]=a[i-1][j]+a[i-2][j]+count; count=a[i][j]/10; a[i][j]%=10; } while(count){ a[i][++k]=count; count/=10; } } for(i=k;i>0;i--){ //i++ printf("%d",a[n][i]); } printf("\n"); } return 0;}

想我所想:

解题思路:首先,打一个二维数表。a[ i ] [ j ],  i 表示输入的PI。j表示PI的长度,暂定义为1010。相信够用了。然后,进行二维数表的运算,依据a[ i ]=a[ i-1 ]+a[ i -2 ]求出后面的数据,这个过程中注意进位。以及逆序输出。

难点具体解释:此题一眼看上去比較简单。后来做后发现当中有诈。我第一次是定义一个64位int型一位数组做的。结果wa,百思不得其解,我想64位还不够大。大数问题。于是想起经常使用的二维数组解决大数问题,然后copy一个自己觉得不错的程序。加以改动。得到了现在的这个。这个程序关键在于理解二维数组的进位问题。

关键词:二维数组 进位
解题人:杨圣洁
解题时间:2014.8.1
解题体会:二维数组对解决大数问题非常有用!

转载地址:http://cbcpx.baihongyu.com/

你可能感兴趣的文章
linux卸载nomachine,NoMachine 安装与配置及使用
查看>>
企业shell常见面试题及企业实战案例深入浅出讲解
查看>>
Load Test
查看>>
美文共赏
查看>>
RHEL6入门系列之十七,打包与压缩
查看>>
SQLite 3.7.13的加密解密(二)—— 开放宏定义
查看>>
禁止server 2008域端口的脚本
查看>>
数据结构图之二(最小生成树--普里姆算法)
查看>>
HTML输出 一 控制列背景颜色
查看>>
Redis for Windows(C#缓存)配置文件详解
查看>>
回忆2013年的点点滴滴(各个方面)
查看>>
ASP.NET MVC 4使用PagedList.Mvc分页
查看>>
HDOJ 2066 floyed优化算法
查看>>
window.onscroll
查看>>
开发常用动画收集
查看>>
nginx js、css多个请求合并为一个请求(concat模块)
查看>>
mybatis实战教程(mybatis in action)之五:与spring3集成
查看>>
解决浏览器Adobe Flash Player不是最新版本问题
查看>>
SQLite 约束
查看>>
Python爬虫学习——使用Cookie登录新浪微博
查看>>