zoukankan      html  css  js  c++  java
  • 大数比较

    题目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  }
  • 相关阅读:
    NYOJ 158 省赛来了(变相组合数)
    NYOJ 111 分数加减法
    NYOJ 14 会场安排问题 (贪心)
    POJ 3903 Stock Exchange(LIS)
    NYOJ 456 邮票分你一半(01背包)
    HDU 4521 小明系列问题——小明序列 (LIS加强版)
    CSU 1120 病毒(经典模板例题:最长公共递增子序列)
    挑战程序设计竞赛里面的几道深度优先搜索
    2009 Multi-University Training Contest 4
    USACO sec1.1
  • 原文地址:https://www.cnblogs.com/acmgym/p/3692494.html
Copyright © 2011-2022 走看看