• 大数运算+数组解决


        求斐波那契前1000位的数哈!!!

       

    走楼梯

     

    Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

    题目描述

    小虎发现走楼梯的时候一次上一个台阶比较惬意,一次上两个台阶比较高效,一次上三个台阶就很累人。
    小虎是一个即注重质量又注重高效的人,于是他就在上楼梯的时候每步就只跨上一个台阶或两个台阶,
    现在小虎想知道他这样上n阶的楼梯一共有多少种走法,但是他又不想亲身经历,只好求助于会编程的你,帮他解决这个问题了。
     

    输入

    第一行是T,表示接下来有T组输入,每组输入一个N(2 <= N <= 1000)

    输出

    对应每组输入输出一共有多少种走法。

    示例输入

    3
    10
    9
    22

    示例输出

    89
    55
    28657

    提示

     

        因为数据越加越大,后几百位的数据早就超越 long long 和 double 了, 故我们选择 数组加法。

      

       代码如下哈哈哈!!!

       As  followed :

       

    #include <stdio.h>
    #include <string.h>
    
    int a[1001][501]={0};
    
    int main()
    {
        int t;
        int n;
        int i, j, k, h, e;
    
        a[1][500] = 1;
        a[2][500] = 2;
        a[3][500] = 3;
        a[4][500] = 5;
        a[5][500] = 8;
    
       for(i=6; i<=1000; i++)
      {
         h = 0;
         for(j=500; j>=0; j--)
        {
           e = ( a[i-2][j] + a[i-1][j] + h );
    
           a[i][j] = e % 10 ;
    
           h = ( a[i-2][j] + a[i-1][j] + h )/10;
         }
      }
        scanf("%d", &t);
    
    
     while(t--)
     {
          scanf("%d", &n);
          i = 0;
          while(a[n][i]==0)
         {
            i++;
         }
         for(i; i<=500; i++)
         {
              printf("%d", a[n][i] );
         }
          printf("
    ");
      }
       return 0;
    }
     
    
  • 相关阅读:
    Mac安装Git以及Git和Github使用教程
    JMeter 聚合报告之 90% Line 参数说明
    [loj3525]喷泉公园
    dapr微服务
    Online SQL interpreter
    C# Math.Round()的银行家算法
    使用Visual Studio分析dump
    Qt高级——QTestLib单元测试框架
    深度学习:Keras入门(一)之基础篇
    前端使用a标签启动本地.exe程序
  • 原文地址:https://www.cnblogs.com/yspworld/p/3780605.html
Copyright © 2020-2023  润新知