比大小

来源:互联网 发布:软件著作权申请条件 编辑:程序博客网 时间:2024/04/26 04:08

比大小

时间限制: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  222222220 0
样例输出
a>ba<b

查看代码---运行号:253115----结果:Accepted

运行时间:2012-10-07 22:45:05  |  运行人:huangyibiao
view sourceprint?
01.#include <iostream>
02.#include <string>
03. 
04.usingnamespace std;
05. 
06.intmain()
07.{
08.string a, b;
09. 
10.while(cin >> a >> b && (a != "0"|| b != "0"))
11.{
12.intlena = a.size();
13.intlenb = b.size();
14.inti;
15. 
16.if(a[0] == '-' && b[0] == '-')//两个负数
17.{
18.if(lena > lenb)
19.cout <<"a<b\n";
20.elseif (lena < lenb)
21.cout <<"a>b\n";
22.else//从高位开始比较,第一个出现大的就是较小的数
23.{
24.for(i = lena-1; i >= 0; i--)
25.{
26.if(a[i] > b[i])
27.{
28.cout <<"a<b\n";
29.break;
30.}
31.elseif (a[i] < b[i])
32.{
33.cout <<"a>b\n";
34.break;
35.}
36.}
37.if(i == -1)
38.cout <<"a==b\n";
39.}
40.}
41.elseif (a[0] != '-'&& b[0] != '-')//两个正数
42.{
43.if(lena > lenb)
44.cout <<"a>b\n";
45.elseif (lena < lenb)
46.cout <<"a<b\n";
47.else
48.{
49.for(i = lena-1; i >= 0; i--)
50.{
51.if(a[i] > b[i])
52.{
53.cout <<"a>b\n";
54.break;
55.}
56.elseif (a[i] < b[i])
57.{
58.cout <<"a<b\n";
59.break;
60.}
61.}
62.if(i == -1)
63.cout <<"a==b\n";
64.}
65.}
66.elseif (a[0] == '-'&& b[0] != '-')//a为正数,b为负数
67.cout <<"a<b\n";
68.elseif (a[0] != '-'&& b[0] == '-')
69.cout <<"a>b\n";
70.}
71.return0;
72.}