zoukankan      html  css  js  c++  java
  • zoj 1962 How Many Fibs?(字符串化为数字处理)

     事实证明还是,题目拿到手之后,还是还是好好动手划一下比较好,不然直接想打哪!打到哪!很容易乱掉的。将数字倒着弄成字符串比较好处理。

    #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]='';
        str[1][0]='2';str[1][1]='';
        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;
                }
                else
                    flag=0;
                str[i][j]='0'+h;
            }
            if(flag==1)
                str[i][j++]='1';
            str[i][j]='';        
        }
    
        while(scanf("%s%s",str1,str2)!=EOF)
        {
            if(strcmp(str1,"0")==0&&strcmp(str2,"0")==0)
            break;
            
            
            
            l1=strlen(str1);str3[l1]='';
            for(i=l1-1,j=0;i>=0;i--)
                str3[i]=str1[j++];
               
               l2=strlen(str2);str4[l2]='';
               for(i=l2-1,j=0;i>=0;i--)
                   str4[i]=str2[j++];    
                   
             printf("%d
    ",cmp(str3,str4));         
        }
     
        return 0;
    }
  • 相关阅读:
    ionic3使用@angular/http 访问nodejs(koa2框架)服务不能返回数据
    FacebookFriendAdderPro
    SEO记录-1
    thanos 实现 prometheus 高可用 数据持久化2
    Prometheus + consul + grafana 监控体系搭建1
    解决问题方法
    原则设定
    docker-基本概念、架构和使用
    如何有效学习
    社会~
  • 原文地址:https://www.cnblogs.com/woshijishu3/p/3651240.html
Copyright © 2011-2022 走看看