⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 k.c

📁 一个对于一个给定的 数( N )
💻 C
字号:
#include<stdio.h>
#include<string.h>
int main()
{  static int i , j , n , m , h ,flag, d[5000][1010],lenth[5000],i1,strlenth,i2;
   char a[1005], p;

   scanf("%d" , &n);
   scanf("%c" , &p);
   memset(d,0,sizeof(d));
   d[0][1001] = 1; d[1][1001] = 1;
   lenth[0] = lenth[1] = 1;
   m = 2;
   for(i = 0 ; i <= 4997; i ++){
      for(j = 1001 ; j >= 1 ; j --){
          d[i+2][j] = d[i+2][j] + d[i+1][j] + d[i][j];
          if(d[i+2][j] > 9){
             d[i+2][j] = d[i+2][j] % 10;
             d[i+2][j-1] = d[i+2][j-1] + 1;
          }   
      }
      m ++;
      for(i1=0;d[i+2][i1] == 0;i1++);
      lenth[i+2] = 1001 - i1 + 1;
   }
   for(i = 0 ; i < n ; i ++){
      memset(a,'\0',sizeof(a));
      fgets(a, sizeof(a), stdin);
      h=strlen(a)-1;
      strlenth = h;
      for(j=0;j<5000;j++){
          if(strlenth == lenth[j]){
              break;     
          }                    
      }
      flag = 0;
      for(;j<5000;j++){
          for(i1=0;d[j][i1]==0;i1++);
          for(i2=0;i1<1002&&a[i2]!='\n';i1++,i2++){
              if(d[j][i1] > a[i2] - 48 || strlenth != lenth[j]){
                  flag = 1;
                  break;            
              }
              else if(d[j][i1] < a[i2] - 48){
                  break;     
              }                       
          }
          if(flag){
              break;
          }
      }
      for(i1=0;d[j-1][i1]==0;i1++);
      for(;i1<1002;i1++){
          printf("%d",d[j-1][i1]);                   
      }
      printf("\n");
   }   
   return(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -