题目大意:
题目的意思是给定两个数,比较大小,但是这是个很多位的数
题目解析:
这是一个简单的模拟题,非常的水,就是一个字符串模拟
代码:
#include <iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; string s11,s22; int Judge(string s,string s1) { if(s.length()>s1.length()) return 1; else if(s.length()<s1.length()) return 2; else{ for(int i=0;i<(int)s.length();i++){ if(s[i]>s1[i]) return 1; if(s[i]<s1[i]) return 2; } } return 0; } int text(string s,string s1) { int len=max(s.length(),s1.length()); for(int i=0;i<len;i++){ if((int)s.length()<=i) s+='0'; if((int)s1.length()<=i) s1+='0'; } for(int i=0;i<len;i++){ if(s[i]>s1[i]) return 1; else if(s[i]<s1[i]) return 2; } return 0; } void change(string& f,string & b,string s) { int flag=1; for(int i=0;i<s.length();i++){ if(s[i]=='.'){ flag=0; i++; } if(flag) f+=s[i]; else b+=s[i]; } } int main() { int cnt=0; //freopen("in.txt","r",stdin); //freopen("print.txt","w",stdprint); while(cin>>s11>>s22) { string f="",b="",f1="",b1="",print=""; change(f,b,s11);change(f1,b1,s22); if(f==f1&&b==b1) print=="Same"; else{ int ans=Judge(f,f1); if(ans==1) print="Bigger"; else if(ans==2) print="Smaller"; else{ int ans1=text(b,b1); if(ans1==1) print="Bigger"; else if(ans1==2) print="Smaller"; else print="Same"; } } cout<<"Case "<<++cnt<<": "<<print<<endl; } return 0; }
