2、整数逆序的多种方法

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;
}
//五、
发布了16 篇原创文章 · 获赞 0 · 访问量 333

猜你喜欢

转载自blog.csdn.net/NAU_LHT/article/details/104144239