题解 | #循环数比较#
循环数比较
https://www.nowcoder.com/practice/24575008c6134b6fa4fab8ea0ea82a99
#include <stdio.h>
#include <string.h>
void repeat_judge(int x,int k,int x1,int k1)
{
int data=x,data1=x1;
int j=0;
while(data) //读取元素大小,(个十百千万……)
{
if(data!=0)
j++;
else
break;
data=data/10;
}
int j1=0;
while(data1)
{
if(data1!=0)
j1++;
else
break;
data1=data1/10;
}
//printf("%d,%d,%d,%d",j,k,j1,k1);
if(j*k > j1*k1)
printf("Greater\n");
else if(j*k < j1*k1)
printf("Less\n");
else
{
data=x;
data1=x1;
char sign[19]={0};
char sign1[19]={0}; //最后一位必定是0
sprintf(sign, "%d%d\n", data,data1);
sprintf(sign1, "%d%d\n", data1,data);
//printf("%s\n",sign);
//printf("%s\n",sign1);
for(int i=0;i<19;i++)
{
if(sign[i]=='\n' && sign1[i]=='\n')
{
printf("Equal\n");
break;
}
if(sign[i]<sign1[i])
{
printf("Less\n");
break;
}
if(sign[i] >sign1[i])
{
printf("Greater\n");
break;
}
}
}
}
int main() {
int x1, k1, x2, k2;
scanf("%d %d %d %d",&x1,&k1,&x2,&k2);
repeat_judge(x1, k1, x2, k2);
return 0;
}
