2、整数逆序的多种方法
一、递归法逆序:输入一个正整数n,将其逆序输出。要求定义和调用函数reverse(num),其功能是将num逆序输出,要求用递归实现。
二、经典常用的:关键代码是 d = x%10; ret=ret*10 + d;
三、更简单的:仅针对三位整数
四、更复杂的:仅针对三位整数
五、:
说明:x/100得x的百位数字,x%100则是去掉x的百位数字,x%10得x的个位,依此类推。
//一、递归法逆序:
#include<stdio.h>
void reverse(int n);
int main(){
int n;
scanf("%d", &n);
reverse(n);
return 0;
}
void reverse(int n){
if(n<10){
printf("%d",n);
}else{
printf("%d",n%10);
reverse(n/10);
}
}
//二、经典常用的:
#include <stdio.h>
int main(){
int x, d, ret=0;
scanf("%d", &x);
while( x > 0){
d = x%10;
ret = ret*10 + d;
x /=10;
}
printf ("%d", ret);
return 0;
}
//三、更简单的(仅针对三位整数):
#include<stdio.h>
int main()
{
int digit= 0, a ,b , c;
scanf ("%d", &digit);
a= digit%10; //a为个位
b= digit%100/10; //b为十位
c= digit/100; //c为百位
digit= a*100 +b*10 +c;
printf ("%d", digit);
return 0;
}
//四、更复杂的(仅针对三位整数):
#include <stdio.h>
int main(){
int figure, key;
scanf("%d",&figure);
if(figure%10==0){
if(figure%100==0){
key=figure/100; //个位十位均为0的情况
}else{
key=figure/100+figure%100; //仅个位为0的情况
}
}else{
if(figure%100<10 ){
key=figure/100+figure%100*100; //仅十位为0的情况
}else{
key=figure/100+figure%100%10*100+figure%100/10*10;
} //个位十位均不为0的情况
}
printf("%d",key);
return 0;
}
//五、
来源:CSDN
作者:NAU_LHT
链接:https://blog.csdn.net/NAU_LHT/article/details/104144239