/*
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。