数字反转(函数)

本文介绍了一种简单的整数翻转算法,并提供了一个C++实现示例。该算法能够接收一个整数作为输入,然后返回一个新的整数,其各位数字顺序完全相反。此外,还考虑了特殊情况,如输入为零的情况。
描述

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形
式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零

输入
输入共 1 行,一个整数N。
输出
输出共 1 行,一个整数,表示反转后的新数。
样例输入
123
样例输出
321

#include<bits/stdc++.h>
using namespace std;
int ji(int n)
{
    int s=0;
    while (n!=0)
    {
        s=s*10+n%10;
        n=n/10;
    }
    return s;
}
int main()
{
    int m,t;
    cin>>m;
    if(m==0)
    cout<<"0";
    else
    cout<<ji(m)<<endl;
    return 0;
}

### 三位正整数反向输出的实现方式 在不使用反转函数的前提下,可以通过数学运算提取三位正整数的个位、十位和百位,并重新组合成反向数值。该方法适用于任意支持基本算术运算的编程语言。 #### 实现原理 通过以下方式提取三位数的各个位: - **百位**:`num // 100` - **十位**:`(num // 10) % 10` - **个位**:`num % 10` 然后将这三个位按照个位、十位、百位的顺序重新组合成一个新的整数,即完成反向输出。这种方式避免了字符串操作和专用反转函数的使用,直接利用数学逻辑实现目标[^2]。 #### Python 示例代码 ```python num = int(input("请输入一个三位正整数:")) bai = num // 100 shi = (num // 10) % 10 ge = num % 10 reversed_num = ge * 100 + shi * 10 + bai print("反向输出的结果为:", reversed_num) ``` 该代码首先接收用户输入并转换为整数,随后分别提取每一位的数值,并按个位优先的方式构建新的整数,最终输出结果[^2]。 #### C++ 示例代码 ```cpp #include <iostream> using namespace std; int main() { int num; cin >> num; int bai = num / 100; int shi = (num / 10) % 10; int ge = num % 10; int reversed_num = ge * 100 + shi * 10 + bai; cout << "逆序结果:" << reversed_num << endl; return 0; } ``` 此实现与 Python 版本一致,采用数学运算提取各数字位,并以正确顺序重组输出值[^3]。 #### C 语言示例代码 ```c #include <stdio.h> int main() { int num; scanf("%d", &num); int bai = num / 100; int shi = (num / 10) % 10; int ge = num % 10; int reversed_num = ge * 100 + shi * 10 + bai; printf("逆序后的数为:%d\n", reversed_num); return 0; } ``` C 语言版本同样遵循相同逻辑,通过基本算术运算提取每一位并进行重组[^3]。 --- ### 注意事项 - 输入必须为三位正整数,否则程序可能输出错误结果。 - 若输入包含末尾零(如 `900`),反向后前导零会被自动省略,因此输出为 `9`。 - 不使用字符串转换或内置反转函数是保证处理过程符合原始需求的关键。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值