[C/C++入门][ifelse]10、反向输出一个三位数(求整数的各位数的值)

我们解决编程问题,可以从数学的角度来解析这个问题——如何从一个三位数中分别提取百位、十位和个位的数字,我们可以使用基础的除法和乘法概念。

数位的概念

首先,我们需要了解数位的概念。在十进制系统中,每个位置代表不同的数值。例如,在数字345中:

  • 5是在个位,代表的是5个1;
  • 4是在十位,代表的是4个10,即40;
  • 3是在百位,代表的是3个100,即300。

如何提取每一位的数值

当我们想要从一个三位数中提取各个位的数值时,我们可以使用除法和模运算(也就是取余数)。

提取百位数

为了提取百位上的数字,我们需要看这个数除以100的商是多少。例如,如果我们有数字345:

  • 我们用345除以100得到3(忽略掉小数部分,因为我们只关心整数部分),所以百位上的数字是3。
提取十位数

提取十位上的数字稍微复杂一点,我们需要先去除百位的影响,然后再看剩余部分除以10的商是多少。还是以数字345为例:

  • 我们先用345对100取余数,得到45(这是因为45是345去掉百位后剩下的部分);
  • 接着,我们用45除以10得到4(同样只关注整数部分),所以十位上的数字是4。
提取个位数

提取个位上的数字是最简单的,我们只需要用原来的数对10取余数即可。还是以数字345为例:

  • 我们用345对10取余数,得到5,所以个位上的数字是5。

所以,如果你有一个三位数,比如345,你可以按照以下步骤提取它的各个位数:

  1. 百位: 345 ÷ 100 = 3(商)
  2. 十位: (345 % 100) ÷ 10 = 4(先取余,再除以10的商)
  3. 个位: 345 % 10 = 5(取余)

这些步骤使用了基本的数学运算,特别是除法和取余数,通过这种方式,我们可以轻松地从任意三位数中提取出各个位的数值。

上代码

#include <iostream>
using namespace std;

int main() {
    int number, hundreds, tens, ones;

    // 输入一个三位数
    cout << "请输入一个三位数: ";
    cin >> number;

    // 检查输入是否为三位数
    if (number >= 100 && number <= 999) {
        // 提取各位数值
        hundreds = number / 100;       // 百位
        tens = (number % 100) / 10;    // 十位
        ones = number % 10;            // 个位

        // 输出结果
        cout << "获取后的值: "
                  << hundreds << " (百位数), "
                  << tens << " (十位数), "
                  << ones << " (个位数)." << endl;
    } else {
        cout << "对不起,不符合输入条件!" << endl;
    }

    return 0;
}

另外我们还可以通过while来试一下:

#include <iostream>
using namespace std;
int main() {
    int num, reverseNum = 0, remainder;

    // 输入一个三位数
    cout << "输入一个三位数: ";
    cin >> num;

    // 检查输入是否为三位数
    if (num >= 100 && num <= 999) {
        // 反转数字
        while (num != 0) {
            remainder = num % 10;  // 获取最后一位数字
            reverseNum = reverseNum * 10 + remainder;  // 添加到反转后的数字
            num /= 10;  // 移除最后一位数字
        }

        // 输出反转后的数字
        cout << "反转后的数字: " << reverseNum << endl;
    } else {
        cout << "请输入一个三位数." << endl;
    }

    return 0;
}

那么知道三个数了,可以直接通过cout来输出反转,也可以通过while反转了。

喜欢的点个关注吧。谢谢大佬。

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值