You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否基于数字展开式实现数字反转?求相关算法方案

基于数字展开式实现数字反转的方法

你提供的标准数字反转C语言代码如下:

#include <stdio.h>
int main() 
{
  int result=0;
  int q,n,rem;

  printf("enter number: ");
  scanf("%d",&n);
  q=n;

  while(q!=0){
    rem=q%10;
    result=result*10+rem;
    q=q/10;
  }

  printf("reversed number is: %d",result);
    return 0;
}

确实存在基于数字展开式的数字反转方法,核心逻辑和你举例的一致——把原数字的每一位按反转后的位置,乘以对应10的幂次再相加。比如输入123,反转后的321就是3*100 + 2*10 + 1*1。

具体实现思路

  1. 先确定原数字的位数,比如123是3位数,反转后最高位对应的幂次是10^(3-1)=100;
  2. 依次提取原数字的每一位(从个位开始);
  3. 把提取的数字乘以当前对应的10的幂次,累加到结果中;
  4. 每处理一位,幂次除以10,直到所有位处理完成。

对应的C语言代码实现

方法一:使用数学库计算幂次

#include <stdio.h>
#include <math.h>

int main() {
    int n, original, digitCount = 0;
    long long reversed = 0; // 用long long避免大数字溢出

    printf("enter number: ");
    scanf("%d", &n);
    original = n;

    // 统计数字的位数
    while (original != 0) {
        original /= 10;
        digitCount++;
    }

    original = n;
    // 按展开式计算反转结果
    while (original != 0) {
        int lastDigit = original % 10;
        reversed += lastDigit * pow(10, digitCount - 1);
        original /= 10;
        digitCount--;
    }

    printf("reversed number is: %lld\n", reversed);
    return 0;
}

方法二:手动计算幂次(无需数学库)

#include <stdio.h>

int main() {
    int n, original, digitCount = 0;
    long long reversed = 0, power = 1;

    printf("enter number: ");
    scanf("%d", &n);
    original = n;

    // 统计位数同时计算最高位的幂次
    while (original != 0) {
        original /= 10;
        digitCount++;
        if (digitCount > 1) {
            power *= 10;
        }
    }

    original = n;
    while (original != 0) {
        int lastDigit = original % 10;
        reversed += lastDigit * power;
        original /= 10;
        power /= 10;
    }

    printf("reversed number is: %lld\n", reversed);
    return 0;
}

代码说明

  • 统计位数是为了确定每一位对应的10的幂次,保证数字能放到反转后的正确位置;
  • 使用long long存储结果,避免原数字接近int最大值时出现溢出;
  • 两种方法核心逻辑一致,第二种手动计算幂次的方式可以避免引入math.h库,减少依赖。

内容的提问来源于stack exchange,提问作者Sid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:50:29