标签:
给你两个很大的数,你能不能判断出他们两个数的大小呢?
比如123456789123456789要大于-123456
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 }
标签:
原文地址:http://www.cnblogs.com/ljwTiey/p/4307675.html