1249 Problem Q

时间:2023-03-09 20:06:29
1249 Problem  Q

问题 Q: 比大小

时间限制: 1 Sec  内存限制: 128 MB 提交: 159  解决: 66 [提交][状态][讨论版]

题目描述

给你两个很大的数,你能不能判断出他们两个数的大小呢? 比如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
 #include <iostream>
#include <string.h> using namespace std; char a[],b[];
int cut;
int na,nb;
int main()
{
while(cin>>a>>b)
{
if(a[]==''&&b[]=='')
break;
if(a[]!='-'&&b[]=='-')
{
cout<<"a>b"<<endl;
continue;
}
if(a[]=='-'&&b[]!='-')
{
cout<<"a<b"<<endl;
continue;
}
cut=;
if(a[]=='-'&&b[]=='-') cut=;
na=strlen(a+cut);
nb=strlen(b+cut);
if(na>nb&&cut==)
{
cout<<"a>b"<<endl;
continue;
}
if(na>nb&&cut==)
{
cout<<"a<b"<<endl;
continue;
}
if(na<nb&&cut==)
{
cout<<"a<b"<<endl;
continue;
}
if(na<nb&&cut==)
{
cout<<"a>b"<<endl;
continue;
}
for(int i=cut;i<na+cut;i++)
{
if(a[i]>b[i])
{
if(cut==)
{
cout<<"a>b"<<endl;
cut=-;
break;
}
else
{
cout<<"a<b"<<endl;
cut=-;
break;
}
}
if(a[i]<b[i])
{
if(cut==)
{
cout<<"a<b"<<endl;
cut=-;
break;
}
else
{
cout<<"a>b"<<endl;
cut=-;
break;
}
}
}
if(cut!=-)
cout<<"a==b"<<endl;
}
return ;
}