爱奇艺 循环数比较 数学

题目描述

对于任意两个正整数x和k,我们定义repeat(x, k)为将x重复写k次形成的数,例如repeat(1234, 3) = 123412341234,repeat(20,2) = 2020.
牛牛现在给出4个整数x1, k1, x2, k2, 其中v1 = (x1, k1), v2 = (x2, k2),请你来比较v1和v2的大小。

输入描述:

输入包括一行,一行中有4个正整数x1, k1, x2, k2(1 ≤ x1,x2 ≤ 10^9, 1 ≤ k1,k2 ≤ 50),以空格分割

输出描述:

如果v1小于v2输出"Less",v1等于v2输出"Equal",v1大于v2输出"Greater".

示例1

输入

1010 3 101010 2

输出

Equal
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    string num1,num2;
    int a1,a2,flag;
    while(cin>>num1>>a1>>num2>>a2)
    {
        int len1,len2;
        len1=num1.length()*a1;
        len2=num2.length()*a2;
        if(len1<len2)
        {
            cout<<"Less"<<endl;
            continue;
        }else if(len1>len2) 
        {
            cout<<"Greater"<<endl;
            continue;
        }else {
            int p1=0,p2=0;
            for(int i=0;i<len1;++i)
            {
                int a1=num1.length();
                int a2=num2.length();
                if(p1==a1){  p1=0; }
                if(p2==a2){  p2=0; }
                if(num1[p1]<num2[p2])
                {
                    flag=-1;
                    break;
                }
                else if(num1[p1]>num2[p2])
                {
                    flag=1;
                    break;
                }else 
                {
                    p1++,p2++;
                }
            }
        }
        if(flag==-1)
        {
            cout<<"Less"<<endl;
        }else if(flag==1)
        {
            cout<<"Greater"<<endl;
        }else cout<<"Equal"<<endl;
    }
    return 0;
}
Last modification:January 11th, 2020 at 11:34 pm
如果觉得我的文章对你有用,请随意赞赏