zoukankan      html  css  js  c++  java
  • HDU1316 fib+高精度

    View Code
      1 #include<stdio.h>
      2 #include<string.h>
      3 #include<algorithm>
      4 #include<stdlib.h>
      5 using namespace std;
      6 const int maxn = 205;
      7 char a[ maxn ],b[ maxn ],s[ maxn ];
      8 char fi[ 505 ][ maxn ];
      9 char tmp[ maxn ];
     10 
     11 void a_b_add( ){
     12     int i,t,la,lb;
     13     i=0;
     14     t=0;
     15     la=strlen(a)-1;
     16     lb=strlen(b)-1;
     17     while((la>=0)&&(lb>=0))
     18     {
     19         s[i]=a[la--]+b[lb--]+t-48;
     20         t=0;
     21         if(s[i]>'9')
     22         {
     23             t=1;
     24             s[i]=s[i]-10;
     25         }
     26         i++;
     27     }
     28     while((la>=0)&&(lb<0))
     29     {
     30         s[i]=a[la--]+t;
     31         t=0;
     32         if(s[i]>'9')
     33         {
     34             s[i]=s[i]-10;
     35             t=1;
     36         }
     37         i++;
     38     }
     39     while((la<0)&&(lb>=0))
     40     {
     41         s[i]=b[lb--]+t;
     42         t=0;
     43         if(s[i]>'9')
     44         {
     45             s[i]=s[i]-10;
     46             t=1;
     47         }
     48         i++;
     49     }
     50     s[i]='0'+t;
     51     if(s[i]=='0')
     52         i--;
     53     int j=0;
     54     for( ;i>=0;i-- ) tmp[ j++ ]=s[ i ];
     55     tmp[ j++ ]='\0';
     56     strcpy( s,tmp );
     57     return ;
     58 }//a+b 高精度
     59 
     60 int cmp( char s1[],char s2[] ){
     61     int len1,len2;
     62     len1=strlen( s1 ),len2=strlen( s2 );
     63     if( len1>len2 ) return 1;// >
     64     if( len1<len2 ) return -1;// <
     65     if( strcmp( s1,s2 )==0 ) return 0;// =
     66     if( strcmp( s1,s2)<0 ) return -1;
     67     return 1;
     68 }
     69 
     70 int main(){
     71     a[ 0 ]=='1',a[ 1 ]='\0';
     72     b[ 0 ]='1',b[ 1 ]='\0';
     73     int cnt;
     74     fi[ 0 ][ 0 ]='1',fi[ 1 ][ 0 ]='1';
     75     cnt=1;
     76     for( int i=1;i<=500;i++ ){
     77         a_b_add( );
     78         strcpy( fi[ cnt ],s );
     79         strcpy( a,fi[ cnt ]),strcpy( b,fi[ cnt-1 ]);
     80         //printf("%d %s\n",strlen(fi[cnt]),fi[ cnt ]);
     81         cnt++;
     82     }
     83     
     84     while( scanf("%s %s",a,b)!=EOF ){
     85         if( a[0]=='0'&&b[0]=='0' ) break;
     86         int left,right;
     87         int temp;
     88         for( int  i=1;i<cnt;i++ ){
     89             temp=cmp( fi[ i ],a );
     90             if( temp>=0 ) {//fi[]>=a
     91                 left=i;
     92                 break;
     93             }
     94         }
     95         for( int  i=left;i<cnt;i++ ){
     96             temp=cmp( fi[ i ],b );
     97             if( temp>0 ) {//fi[]>a
     98                 right=i-1;
     99                 break;
    100             }
    101             else if( temp==0 ){
    102                 right=i;
    103                 break;
    104             }
    105         }
    106         //printf("left:%d right:%d\n",left,right);
    107         printf("%d\n",right-left+1);
    108     }
    109     return 0;
    110 }
    keep moving...
  • 相关阅读:
    Datagrip导入导出为一个sql文件详细说明 (mysql)
    Linux/Unix/Mac OS下的远程访问和文件共享方式
    批量杀掉多个pid文件中记录的pid进程, 并集成到shell脚本中
    把tomcat服务器配置为windows服务的方法
    idea导入java项目
    linux-umount挂载点无法卸载:device is busy(解决)
    elasticsearch插件大全
    分布式搜索elasticsearch配置文件详解
    centos fastdfs 多服务器 多硬盘 多组 配置详解
    redis 配置 linux
  • 原文地址:https://www.cnblogs.com/xxx0624/p/2893441.html
Copyright © 2011-2022 走看看