反向输出一个三位数

414 阅读1分钟

将一个三位数反向输出,例如输入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位数场景:

image.png

输入是2位数场景:

image.png

输入是3位数场景:

image.png

输入是8位数场景

image.png