C++實現——構造n位數的反序數

/*
	This is "構造n位數的反序數" Program
	例如:輸入12345,則輸出54321 
	Author: Gu Hui
	Date: 2020/3/31
	此例問題:輸入數據最大隻能是2147483631,爲什麼呢? 
*/
#include <iostream>
#include <cmath>
using namespace std;

int get_length(int x)
{
	using namespace std;
	int len=0;
	while(x)
	{
		x/=10;
		len++;
	}
	return len;
}

int main()
{
	int x,y=0,len;
	cout<<"請輸入一個數:" ;//例如:12345 
	cin>>x;
	len=get_length(x);
	cout<<"The original number is:"<<x<<endl;
	cout<<"The length of x is:"<<len<<endl; 
	for(int i=0;i<len;i++){
		y=y*10+x%10;//x%10是從個位開始得到的各個數位,先得到個位數 5
		x=x/10;//得到新數 ,第一次可以得到:1234 
	}
	cout<<"The inversed number is:"<<y<<endl; 
	return 0;
}



此程序,經測試,存在一個問題,求指導。問題是:輸入數據最大隻能是2147483631,爲什麼呢?根據int型數據的表示範圍,最大數可以到2147483647。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章