将一个三位数反向输出,例如输入358,反向输出853。
该题是信奥赛一本通中的练习题。
#include "iostream"
using namespace std;
void mx001();
int main() {
cout << "尘远同学编程-少年班欢迎您!" << std::endl;
mx001();
cin.get();
return 0;
}
// 输入一个多为数,把这个数按照从低位到高位的方式输出,
// 如输入 12345 则反向输出54321, 如输入 1230,则反向输出 0321
int mx001(){
int x,n,min,max;
cout<<"请先确定您要输入几位数:";
cin >>n;
cout<<"请输入一个"<<n<<"位数:";
cin >> x;
min=0;
max=9;
if( n>=2) {
min=1;
for(int i=1;i<n;i++){
min =min *10;
max=(max * 10)+9;
}
}
//cout<<"min=="<<min<<",max=="<<max<<endl;
while(!(x>=min && x<=max)){
cout<<"输入的数字不是有效的"<<n<<"位数。请重新输入:";
cin >>x;
}
cout<<"您输入的数字是:"<<x<<endl;
cout<<"反向输出这个数字是:";
int mod=0;
while (!(x >=0 && x<=9)){
mod=x%10;
cout<<mod;
x=x/10;
}
mod=x%10; // 特别注意最后一个数字的处理,要对10取模
cout<<mod<<endl;
return 0;
}
测试结果如下:
输入是1位数场景:
输入是2位数场景:
输入是3位数场景:
输入是8位数场景