首页 > 代码库 > 南阳73 比大小

南阳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<iostream>
 2 #include<stdio.h>
 3 #include<string.h>
 4 using namespace std;
 5 int judge(char *a,char *b)
 6 {
 7     int l1,l2;
 8     l1=strlen(a);
 9     l2=strlen(b);
10     if(a[0]==-&&b[0]==-)
11     {
12         for(int i=1;i<l1;i++)
13         {
14             if(a[i]>b[i])
15                 return 0;
16             if(a[i]<b[i])
17                 return 1;
18         }
19         return 2;
20     }
21     else
22     {
23         for(int i=0;i<l1;i++)
24         {
25             if(a[i]>b[i])
26                 return 1;
27             if(a[i]<b[i])
28                 return 02;
29         } 
30         return 2;
31     }
32 }
33 int main()
34 {
35     char a[1100],b[1100];
36     while(scanf("%s %s",a,b))
37     {
38         int flag=1;//2:a==b  1:a>b  0:a<b;
39         if(a[0]==0&&b[0]==0)
40             break;
41         else if(a[0]==-&&b[0]!=-)
42             flag=0;
43         else if(a[0]!=-&&b[0]==-)
44             flag=1;
45         else if(a[0]==-&&b[0]==-)
46         {
47             int l1,l2;
48             l1=strlen(a);
49             l2=strlen(b); 
50             if(l1<l2)
51                 flag=1;
52             else if(l1>l2)
53                 flag=0;
54             else if(l1==l2)
55                 flag=judge(a,b);
56                 
57         }
58         else if(a[0]!=-&&b[0]!=-)
59         {
60             int l1,l2;
61             l1=strlen(a);
62             l2=strlen(b); 
63             if(l1<l2)
64                 flag=0;
65             else if(l1>l2)
66                 flag=1;
67             else if(l1==l2)
68                 flag=judge(a,b);
69             
70         }
71         if(flag==2)
72             printf("a==b\n");
73         if(flag==1)
74             printf("a>b\n");
75         if(flag==0)
76             printf("a<b\n");
77     }
78     return 0;
79 }

 

南阳73 比大小