C++基础编程DAY9

20、写一个函数,取一个整数值并返回此整数的各数字反序的数值

//写一个函数,取一个整数值并返回此整数的各数字反序的数值

#include<iostream>
#include<stdint.h>

using namespace std;

//int reverse_m1(int x)
//{
//	int y;
//	if(x>0 && x<10)
//	{
//		y = x ;
//		return y;
//	}
//	else if (x>9 && x<100)
//	{
//		y = x/10 + x%10*10;
//		//cout << x/10 << " " << x%10*10 << " " << x/10 + x%10*10 << endl;
//		return y;
//	}
//	else if(x>99 && x<1000)
//	{
//		y = x/100 + x/10%10*10 + x%10*100;
//		return y;
//	}
//	else
//	{
//		cout << "超出范围,该整数不在0-1000以内" << endl;
//	}
//}


//int reverse_m2(int x)
//{
//	for(int i=0; i<10; i++)
//		for(int j=0; j<10; j++)
//			for(int k=0; k<10; k++)
//			{
//				if(x==i*100+j*10+k)
//				{
//					//if(x>0 && x<10) return x;
//					//if(x>9 && x<100) return k*10+j;
//					//if(x>99 && x<1000) return k*100+j*10+i;
//					if(i==0) 
//					{
//						if(j==0)
//							return x;
//						else 
//							return k*10+j;
//					}
//					else
//						return k*100+j*10+i;
//
//				}
//
//			}
//}

int reverse_m3(int n)
{
	int s = 0;
	while(n)
	{
		s = s*10 + n%10;
		n /= 10;
	}
	return s;
}

int main()
{
	
	cout<< "请输入一个整数:" ;
	int x;
	cin >> x;
	//cout << reverse_m1(x) << endl;
	cout << "反序数为:" << reverse_m3(x) << endl;
	//getchar();
	system("pause");
	return 0;
}

题目来源:50道C++编程练习题及解答

总结

1、两种函数写法都可以求1-1000以内任意整数的反序数,函数一先判断是几位数,然后有求整、求语运算求各个位的数;函数二用三个for()循环列出0-1000的所有数与输入的整数一一比较,采用从高位数是否为0来判断位数,判断条件较函数一简洁;
2、函数三源于参考代码,求余取得整数的各位数,循环*10,不用考虑整数的位数,代码简洁高效。强烈推荐这种方法!!

发布了27 篇原创文章 · 获赞 3 · 访问量 846
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章