Open JunYearPrisoner opened 4 years ago
【应用·比大小】
1、先比较两个数的长度,长度更长的数大。
2、若两个数长度相等,则从高位到低位挨个比较,要是有某一位数字不同,较大的数大,不然的话继续比较下一位。
3、若比到最后都没有比出谁大谁小,那这两个数一样大。
if(lena>lenb) return 1; //lena表示a这个数的长度,lenb则表示b的长度
if(lenb>lena) return 0;
for(int i=lena;i>0;i--){ //从高位到底位一位一位比较
if(a[i]>b[i]) return 1;
if(b[i]>a[i]) return 0;
}
本来想自己打一遍加深印象.....懒癌晚期就饶了我吧,贴链接 https://blog.csdn.net/zsjzliziyang/article/details/82050337
说明:对于较大的数,超过long long 所能表达的范围,将其拆成一个一个的数或者是几个几个的数,储存在数组中用一个数组表示一个数。 读入: (1)用字符串读入,因为整数存不下~ (2)利用字符串函数和操作运算,将每一位数取出,存入一个数组里。一般是倒着存。例如:123456就要a[]={6,5,4,3,2,1} 这里需要计算一下这个数字的长度,调用c/c++函数库shring.h中的一个函数:strlen()。strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符为止,然后返回计数器值(长度不包含结束符)。
char str[9999];
int number[9999];
scanf("%s",str+1);//用字符串读入
int len=strlen(str+1);//这个数的长度为len
for(int i=1;i<=len;i++){
number[i]=str[len-i+1]-'0';//倒叙储存,每一位存一个数
}
*这个屑没有下git客户端将就看。
(3)输出:跑循环就ok了
for(int i=len;i>0;i--){
printf("%d",number[i]);//一位一位输出这个数
}