2、整数逆序的多种方法

青春壹個敷衍的年華 提交于 2020-02-03 07:22:11

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;
}
//五、
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!