码迷,mamicode.com
首页 > 其他好文 > 详细

NYOJ 73 比大小

时间:2015-03-01 23:37:31      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:

比大小

时间限制: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 using namespace std;
 3 #include<string.h>
 4 char a[1011],b[1011];
 5 int main()
 6 {
 7     int i;
 8     while(cin>>a>>b,a[0]!=0||b[0]!=0)
 9     {
10         if(a[0]==-||b[0]==-)
11         {
12             if(a[0]==-&&b[0]!=-)
13             {
14                 cout<<"a<b"<<endl;
15                 continue;
16             }
17             else if(a[0]!=-&&b[0]==-)
18             {
19                 cout<<"a>b"<<endl;
20                 continue;
21             }
22             else
23             {
24                 if((int)strlen(a)>(int)strlen(b))
25                 {
26                     cout<<"a<b"<<endl;
27                     continue;
28                 }
29                 else if((int)strlen(a)<(int)strlen(b))
30                 {
31                     cout<<"a>b"<<endl;
32                     continue;
33                 }
34                 else
35                 {
36                     for(i=1;i<(int)strlen(a);i++)
37                     {
38                         if(a[i]>b[i])
39                         {
40                             cout<<"a<b\n";
41                             break;
42                         }
43                         else if(a[i]<b[i])
44                         {
45                             cout<<"a>b\n";
46                             break;
47                         }
48                     }
49                     if(i>=(int)strlen(a))
50                         cout<<"a==b\n";
51                 }
52             }
53         }
54         else
55         {
56             if((int)strlen(a)>(int)strlen(b))
57             {
58                 cout<<"a>b"<<endl;
59                 continue;
60             }
61             else if((int)strlen(a)<(int)strlen(b))
62             {
63                 cout<<"a<b"<<endl;
64                 continue;
65             }
66             else
67             {
68                 for(i=0;i<(int)strlen(a);i++)
69                 {
70                     if(a[i]>b[i])
71                     {
72                         cout<<"a>b\n";
73                         break;
74                     }
75                     else if(a[i]<b[i])
76                         {
77                             cout<<"a<b\n";
78                             break;
79                         }
80                 }
81                 if(i>=(int)strlen(a))
82                     cout<<"a==b\n";
83             }
84 
85         }
86     }
87     return 0;
88 }

 

 1  
 2 #include<iostream>
 3 #include<string>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     string a,b;    
 9     while(cin>>a>>b)
10     {
11         if(a=="0"&&b=="0")
12             return 0;
13         if(a==b)
14             cout<<"a==b"<<endl;
15         else if(a[0]==-&&b[0]==-)
16             {
17                 if(a.substr(1,string::npos)>b.substr(1,string::npos)||a.length()>b.length())
18                     cout<<"a<b"<<endl;
19                 else cout<<"a>b"<<endl;
20             }
21         else if(a>"0"&&b>"0"||a<"0"&&b<"0"&&a.length()>b.length()||a>b)
22                 cout<<"a>b"<<endl;
23         else if(a<"0"&&b>"0"&&a.length()>b.length()||a>b)
24                 cout<<"a<b"<<endl;
25             
26     }
27 }        

 

NYOJ 73 比大小

标签:

原文地址:http://www.cnblogs.com/ljwTiey/p/4307675.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!