• 大数比较


    题目73
        大数比较
      时间限制:3000 ms  |  内存限制:65535 KB
             难度:2
    描述
    给你两个很大的数,你能不能判断出他们两个数的大小呢?

    比如123456789123456789要大于-123456

    输入
    每组测试数据占一行,输入两个不超过1000位的10进制整数a,b
    数据保证输入的a,b没有前缀的0。
    如果输入0 0表示输入结束。测试数据组数不超过10组
    输出
    如果a>b则输出“a>b”,如果a<b则输出“a<b”,如果相等则输出“a==b”。
    样例输入
    111111111111111111111111111 88888888888888888888
    -1111111111111111111111111  22222222
    0 0
    样例输出
    a>b
    a<b
    */

     1 #include<stdio.h>
     2 #include<string.h> 
     3  int main(){
     4      char a1[100],a2[100];
     5  while(scanf("%s%s",a1,a2)&&(a1[0]!='0'||a2[0]!='0')){
     6      
     7    
     8        int b1[100],b2[100],i,len1,len2;
     9      len1=strlen(a1);
    10      len2=strlen(a2);
    11      if(a1[0]=='-'&&a2[0]!='-')
    12      
    13          printf("a<b
    ");
    14       
    15        
    16        else if(a1[0]!='-'&&a2[0]=='-')
    17 
    18         printf("a>b
    "); 
    19     else if(a1[0]!='-'&&a2[0]!='-')
    20        {
    21         if(len1>len2) 
    22          printf("a>b
    ");
    23       else if(len1<len2)
    24           printf("a<b
    ");
    25       else if(len1==len2)
    26         {
    27            
    28            for(i=0;i<len1;i++)
    29             {  
    30        
    31                  if( (a1[i]-'0')>(a2[i]-'0')){                 
    32                 printf("a>b
    ");  break;}
    33                 if((a1[i]-'0')<(a2[i]-'0')){                
    34                 printf("a<b
    ");   break;} 
    35                  if(i==len1-1){
    36                    printf("a==b
    ");
    37                      break;}
    38                      
    39                  }}}
    40        else if(a1[0]=='-'&&a2[0]=='-')
    41                 
    42             {
    43        if(len1>len2) 
    44          printf("a<b
    ");
    45       else if(len1<len2)
    46         printf("a>b
    ");
    47       else if(len1==len2)
    48        {
    49            
    50            for(i=0;i<len1;i++)
    51             {  
    52        
    53                  if( (a1[i]-'0')>(a2[i]-'0')){                 
    54                 printf("a<b
    ");  break;}
    55                 if((a1[i]-'0')<(a2[i]-'0')){                
    56                 printf("a>b
    ");   break;} 
    57                  if(i==len1-1){
    58                    printf("a==b
    ");
    59                      break;}
    60                      
    61                  }}}
    62             }
    63        return 0;
    64  }
  • 相关阅读:
    扩展中国剩余定理学习笔记
    寻找宝藏
    卢卡斯定理学习笔记
    [国家集训]矩阵乘法
    中国剩余定理学习笔记
    [CTSC2018]混合果汁
    数据结构(C语言版)第二章2.82.11 动态链表
    数据结构(C语言版)第二章2.12.7
    C语言中换行符和回车符的区别(转)
    C的xml编程libxml2(转摘)
  • 原文地址:https://www.cnblogs.com/acmgym/p/3692494.html
Copyright © 2020-2023  润新知