HDU1715大菲波数

简介: HDU1715大菲波数

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
1
1
2
3
5

解析:高精度的使用

#include<iostream>
using namespace std;
int f[1005][300];
void solve(){
  f[1][0] = f[2][0] = 1;//f[i][0]  记录第 i个的长度. 
  f[1][1] = f[2][1] = 1 ;// 初始化前俩
  int len = 1;//辅助变量
  for(int i = 3;i <= 1000; i++){
    for(int j = 1; j<=len;j++){ // 按照加法运算进行模拟 
      f[i][j] += f[i-1][j]+f[i-2][j];
      if(f[i][j]>=10){ // 注:两个个长度为len的数相加, 最多有len+1位. 
        f[i][j+1] += f[i][j] / 10;
        f[i][j] %=10;
      } 
    }
    while(f[i][len+1]){//计算 f[i] 的长度 
      len++;
    } 
    f[i][0] = len; 
  } 
}
int main()
{
  int n,t;
  solve();
  cin>>n;
  while(n--){
    scanf("%d",&t);
    for(int i = f[t][0];i>=1;i--){
      printf("%d",f[t][i]);
    } 
    printf("\n");
  }
  return 0;
 } 
相关文章
|
7月前
|
Java 测试技术
hdu 1228 A + B
hdu 1228 A + B
33 0
|
7月前
|
Java
hdu 2503 a/b + c/d
hdu 2503 a/b + c/d
27 0
|
7月前
|
Java
hdu 1257 最少拦截系统
hdu 1257 最少拦截系统
28 0
|
7月前
|
Java 文件存储
hdu1128 Self Numbers
hdu1128 Self Numbers
25 0
HDU 2669 Romantic
题意:找出最小的非负整数X,使之满足式子X*a + Y*b = 1。
|
机器学习/深度学习
|
算法 Java 文件存储