1804 - 比大小

给你两个很大的数,你能不能判断出他们两个数的大小呢?

比如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

C语言解答

#include <stdio.h>
#include <string.h>
int main(){
    int f,m,n;
    char a[1002],b[1002];
    while(scanf("%s %s",a,b),a[0]!='0'||b[0]!='0'){
        m=strlen(a);
        n=strlen(b);
        if(a[0]=='-'&&b[0]!='-') f=-1;
        else if(a[0]!='-'&&b[0]=='-') f=1;
        else if(m>n) f=a[0]=='-'?-1:1;
        else if(m<n) f=a[0]=='-'?1:-1;
        else{
            f=strcmp(a,b);
            if(f&&a[0]=='-')
                f=f==-1?1:-1;
        }
        printf("a%sb\n",f<0?"<":(f==1?">":"=="));
    }
    return 0;
}

C++解答


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int  main()
{
    char a[1000],b[1000];
    int flag,count=0,len_a,len_b;
    while (1)
    {
     scanf("%s %s",&a,&b);
     len_a = strlen(a);
     len_b = strlen(b);
     if(a[0] == '0' && b[0] == '0')
	 {
		 break;
      printf("\n");
	 }
     else if(a[0]=='-'&&b[0]=='-')
      {
          if(len_a<len_b)
            printf("a>b");
          else if(len_a>len_b)
            printf("a<b");
          else
          {
              flag = strcmp(a,b);
              if(flag>0)
               printf("a<b");
              else if(flag==0)
               printf("a==b");
              else
               printf("a>b");
          }
          printf("\n");
      }
      else if(a[0]!='-'&&b[0]!='-')
      {
           if(len_a<len_b)
            printf("a<b");
          else if(len_a>len_b)
            printf("a>b");
          else
		  {
		  flag = strcmp(a,b);
		  if(flag>0)
			printf("a>b");
		  else if(flag==0)
			printf("a==b");
		  else
			printf("a<b");
		  }
			printf("\n");
      }
      else
      {
          flag = strcmp(a,b);
          if(flag>0)
            printf("a>b");
          else if(flag<0)
            printf("a<b");
            printf("\n");
      }

    }

}

时间限制 3 秒
内存限制 128 MB
讨论 统计
上一题 下一题