题解 | #循环数比较#
循环数比较
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; }