今天继续刷牛客真题,比较两个循环数的大小。
分析:
既然是两个循环数,那么肯定存在大数的情况,因此如果采用int型表示的话,那就会出现溢出的情况,因此只有用字符串的形式表示。然后比较大小的时候,可以首先通过两个循环数的长度进行判断,自然循环数的长度大的值肯定也大,然后遇到长度相等的时候,需要比较两个数的大小,对于字符串,可以直接比较大小。
问题:
1、输入字符串的格式;
2、字符串的叠加可以用累加的形式。
附上C++代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int k1,k2;
string x1,x2;
cin>>x1>>k1>>x2>>k2;
if(x1.size()*k1>x2.size()*k2)
cout<<"Greater";
else if(x1.size()*k1<x2.size()*k2)
cout<<"Less";
else{
string rep_x1,rep_x2;
for(int i=0;i<k1;i++)
rep_x1+=x1;
for(int i=0;i<k2;i++)
rep_x2+=x2;
if(rep_x1==rep_x2)
cout<<"Equal";
else if(rep_x1>rep_x2)
cout<<"Greater";
else
cout<<"Less";
}
return 0;
}
附上Python代码:
a=list(input().split())
x1=int(a[0]*int(a[1]))
x2=int(a[2]*int(a[3]))
if x1>x2:
print("Greater")
elif x1<x2:
print("Less")
else:
print("Equal")