zoj 1962 How Many Fibs?(字符串化为数字处理)
生活随笔
收集整理的這篇文章主要介紹了
zoj 1962 How Many Fibs?(字符串化为数字处理)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?事實(shí)證明還是,題目拿到手之后,還是還是好好動(dòng)手劃一下比較好,不然直接想打哪!打到哪!很容易亂掉的。將數(shù)字倒著弄成字符串比較好處理。
#include<stdio.h> #include<string.h> #define MAX 505 char str[MAX][200]; int ch1(char *a,char *b) {int l1,len,flag,coun=0,l2;int i=0,j=0;l1=strlen(a);l2=strlen(b);if(l1>l2)return 1;else if(l1<l2)return 0;else{for(i=l1-1;i>=0;i--){if(a[i]>b[i])return 1;else if(a[i]<b[i])return 0;}return 1;} } int ch2(char *a,char *b) {int l1,len,flag,coun=0,l2;int i=0,j=0;l1=strlen(a);l2=strlen(b);if(l1>l2)return 1;else if(l1<l2)return 0;else{for(i=l1-1;i>=0;i--){if(a[i]>b[i])return 1;else if(a[i]<b[i])return 0;}return 0;} } int cmp(char *str1,char *str2) {int i,coun=0,s=0;for(i=0;i<MAX;i++){if(ch2(str[i],str2))break;if(ch1(str[i],str1)){coun++;}}return coun; } int main(void) {int i,j,len,h,flag,len1,l1,l2,k;char str1[100],str2[100],str3[100],str4[100];str[0][0]='1';str[0][1]='\0';str[1][0]='2';str[1][1]='\0';for(i=2;i<MAX;i++){len=strlen(str[i-1]);len1=strlen(str[i-2]);flag=0;for(j=0;j<len;j++){h=0;l1=str[i-1][j]-'0';l2=str[i-2][j]-'0';if(j>=len1)l2=0;if(flag==1)h=1;h+=l1+l2;if(h>=10){flag=1;h-=10;}elseflag=0;str[i][j]='0'+h;}if(flag==1)str[i][j++]='1';str[i][j]='\0'; }while(scanf("%s%s",str1,str2)!=EOF){if(strcmp(str1,"0")==0&&strcmp(str2,"0")==0)break;l1=strlen(str1);str3[l1]='\0';for(i=l1-1,j=0;i>=0;i--)str3[i]=str1[j++];l2=strlen(str2);str4[l2]='\0';for(i=l2-1,j=0;i>=0;i--)str4[i]=str2[j++]; printf("%d\n",cmp(str3,str4)); }return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/woshijishu3/p/3651240.html
總結(jié)
以上是生活随笔為你收集整理的zoj 1962 How Many Fibs?(字符串化为数字处理)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1042: [HAOI2008]硬币购物
- 下一篇: 随手正则写的 CSDN【只看楼主】功能