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;
 } 
相关文章
|
人工智能 Java
2021杭电多校5-Arrary-hdu7020
Array Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others) Total Submission(s): 965 Accepted Submission(s): 312 Problem Description Given an integer array a[1…n].
178 0
2021杭电多校5-Arrary-hdu7020
|
人工智能 Java
hdu 1712 ACboy needs your help
ACboy这学期有N门课程,他计划花最多M天去学习去学习这些课程,ACboy再第i天学习第j门课程的收益是不同的,求ACboy能获得的最大收益。
137 0
|
测试技术 Java
|
C++ Java
HDU1880
题意就是根据咒语查功能,根据功能查看是否存在相应咒语,题意简单,不过是道不错的练习题。         下面的都MLE了,听说C++用G++提交才可以AC,否则也MLE;方法很多,不想做了……         方法一:我用Java的HashMap一直MLE,即便由value反查key减少映射数也一样MLE,听说C++的map可以AC。
1082 0
|
机器学习/深度学习
hdu1059Dividing
题意:有6种石头,价值分别是1,2,3,4,5,6   每种有若干,作为输入数据。问能否把这些石头按照价值均分? 分析:多重背包问题。 代码: View Code 1 #include 2 #include 3 #include 4 using namespace...
870 0