大菲波数 【杭电-HDOJ-1715】 附题+具体解释
/*
大菲波数
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<stdio.h>
#include<string.h>
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
解题体会:二维数组对解决大数问题非常有用!
大菲波数 【杭电-HDOJ-1715】 附题+具体解释的更多相关文章
- 循环多少次? 【杭电--HDOJ-1799】 附题+具体解释
循环多少次? Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 最小公倍数 【杭电-HDOJ-1108】 附题+具体解释
/* 最小公倍数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- 放大的X 【杭电-2655】 附题
/* 放大的X Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- 2^x mod n = 1 【杭电-HDOJ-1395】 附题
/* 2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 最低位 【杭电-HDOJ-1196】 附题
/* Lowest Bit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- 不可摸数 【杭电-HDOJ-1999】 附题
/* hdu 1999 不可摸数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- SCAU1143 多少个Fibonacci数--大菲波数【杭电-HDOJ-1715】--高精度加法--Fibonacci数---大数比较
/*******对读者说(哈哈如果有人看的话23333)哈哈大杰是华农的19级软件工程新手,才疏学浅但是秉着校科联的那句“主动才会有故事”还是大胆的做了一下建一个卑微博客的尝试,想法自己之后学到东西都 ...
- hdu 1715 大菲波数 高精度和运算,水
1.hdu 1715 大菲波数 2.链接:http://acm.hdu.edu.cn/showproblem.php?pid=1715 3.总结:水 #include<iostream> ...
- [ACM_数学] 大菲波数 (hdu oj 1715 ,java 大数)
大菲波数 Problem Description Fibonacci数列,定义如下:f(1)=f(2)=1f(n)=f(n-1)+f(n-2) n>=3.计算第n项Fibonacci数值. ...
随机推荐
- nyoj--102--次方求模(快速幂)
次方求模 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 求a的b次方对c取余的值 输入 第一行输入一个整数n表示测试数据的组数(n<100) 每组测试只有一行,其 ...
- SwiftUI 官方教程(七)
7. 给子 View 传递数据 LandmarkDetail 现在依然使用硬编码的数据来显示地标.像 LandmarkRow 一样,LandmarkDetail 类型和它组合的其他 view 都需要一 ...
- Python迭代与递归方法实现斐波拉契数列
首先是迭代的方法实现: def f(n): f1, f2, fn = 1, 1, 1 while n>2: fn = f1 + f2 f1 = f2 f2 = fn n = n - 1 retu ...
- ROS-TF-广播
前言:将海龟的坐标系变换广播到TF. URDF文件的描述是在相对坐标上进行的,运动起来就需要考虑机器人各个连杆的相对位置关系.TF的诞生就是为了自动管理这些相对关系下的坐标变换的,而我们需要做的就是给 ...
- c++ stl swap
好久没写了,简单水一下吧! 一个是最近没怎么刷题,圣诞,元旦,leetcode暂停的比赛两周,自己最近沉迷于打游戏,没有好好抓住时间. 其实最近看了一点书,是侯捷的 <stl源码剖析>,有 ...
- python求两个列表的并集.交集.差集
求两个列表的差集 >>> a = [1,2,3] >>> b=[1,2] >>> ################################ ...
- 如何参加topcoder
1.注册账号 2.安装java运行环境 3.下载客户端 4.提示:应用程序已被java安全阻止:控制面板里找到java,将topcoder.com添加到安全列表 5.运行客户端
- Java程序连接各种数据库的driver和url形式
1.Oracle数据库 Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url = & ...
- Java 开源博客 Solo 1.1.0 发布 - 告别 GAE
Solo 1.1.0 正式发布了,感谢一直以来关注 B3log 开源的朋友! 在这个版本中,我们对项目结构和发布包进行了重大调整: 各式***尚未普及,所以决定去除 GAE 版本 H2 版本使用人数较 ...
- 错误:android.util.SuperNotCalledException
android.util.SuperNotCalledException: Activity {…….YouTubePlayActivity} did not call through to supe ...