zoukankan      html  css  js  c++  java
  • 大菲波数

    Fibonacci数列

    题目网址http://acm.hdu.edu.cn/showproblem.php?pid=1715

    //15Ms
    //离线方式

    其实之后看来这就是水的不行的算法,就是用数组的形式来做的,但是之后做到类似于斐波那契数列的时候,那运算如果这样做的话数组开的肯定也是不够的,所以这还是需要更加精准的算法了,例如运用快速幂等进行运算,详见博主博客
    //整体的思路就是将低位放在前面,这样的话就比较简单,并且进位简单

    #include <iostream>
    #include <cstring>
    using namespace std;
    int a[1001][1001];
    int count[1001];//记录第几个数有多少位
    int main ()
    {
        memset(a,0,sizeof(a));
     a[1][1]=a[2][1]=1;
     count[1]=count[2]=1;
     int i,j,k;
     for(i=3;i<=1000;i++)
     {
      k=0;
      for(j=1;j<=count[i-1];j++)//由于
      {
       k++;
       a[i][k]=a[i-1][j]+a[i-2][j]+a[i][k];//将前两个数的对应位想加,并且有进位
       if(a[i][k]>9)
       {
        a[i][k+1]=a[i][k]/10;
        a[i][k]=a[i][k]%10;//低位
        if(j==count[i-1])//如果是最后一位的话,需要将k加一,要不然最后一位就没有了
         k++;
       } 
      } 
      count[i]=k;//记录下当前的有多少位
     }
     scanf("%d",&k);
     while(k--)
     {
      cin>>i;
      for(j=count[i];j>=1;j--)
       printf("%d",a[i][j]); 
      printf("
    ");
     }
      return 0;
    }


     

  • 相关阅读:
    【日语】日语学习计划(转载)
    【日语】日语商务情景口语
    Nop常用知识点
    c#版在pc端发起微信扫码支付
    nopcommerce 常用属性验证
    @codeforces
    @codeforces
    @codeforces
    @codeforces
    @codeforces
  • 原文地址:https://www.cnblogs.com/zswbky/p/5432082.html
Copyright © 2011-2022 走看看