PKU2413(北大ACM2413)

來源:互聯網
上載者:User

二維數組,高精度加法,兩個大數比較大小……

二維數組,高精度加法,兩個大數比較大小……#include<iostream>#include<string.h>using namespace std;char a[600][150]={"0","1","2"};void add(char s1[],char s2[],char a[])//大數加法{         int i,j,k,sum=0;         k=strlen(s1)>strlen(s2)?strlen(s1):strlen(s2);         memset(a,'0',k);a[k+1]=0;         for(i=strlen(s1)-1,j=strlen(s2)-1;i>=0||j>=0;i--,j--,k--)         {   if(i>=0) sum+=s1[i]-'0';  if(j>=0) sum+=s2[j]-'0';              a[k]=sum%10+'0'; sum/=10;          } if(sum) a[0]=sum+'0'; else strcpy(a,&a[1]);}int cmp(char a[],char b[])//比較大小{if(strlen(a)>strlen(b)) return 1;if(strlen(a)<strlen(b)) return -1;if(strlen(a)==strlen(b)){if(strcmp(a,b)==-1) return -1;if(strcmp(a,b)==1)  return 1;if(strcmp(a,b)==0)  return 0;}}void chu()//計算斐波那契數列各項值{for(int i=3;i<600;i++)add(a[i-1],a[i-2],a[i]);}int main(void){    int i,s;char x[150],y[150];    chu();while(cin>>x>>y){if(strcmp(x,"0")==0&&strcmp(y,"0")==0) break;i=1;while(cmp(a[i],x)<0) i++;s=0;while(cmp(a[i],y)<=0) {s++;i++;}cout<<s<<endl;}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.