gpt4 book ai didi

C - 将 9 转为 0

转载 作者:行者123 更新时间:2023-12-04 10:40:51 27 4
gpt4 key购买 nike

这是我的第一个问题,我是初学者,代码是用 C (ANSI C) 编写的。

代码应该为递归函数中的每个数字返回数字 (n+1)。(123 -> 234; 801->912; 239->340)

问题是当数字 9 出现并且代码将其加 1 结果为 10 并且需要变为 0。有没有一种方法可以在不特别检查数字 9 的情况下处理它?<​​/p>

谢谢!

int swap(int num)
{
int a,b;
if (num/10==0)
return num+1;
else
{
a = num % 10;
a++;
b = swap(num / 10);
return (b * 10) + a;
}
}

最佳答案

递归地,最简单的方法是:

unsigned swap (unsigned n) {
if (n < 10) return ++n % 10;
return 10 * swap(n/10) + swap(n%10);
}

这个函数说的是:

  • 如果 n 小于 10,则结果比其当前值大 1,模 10。
    因此,9 将变为 (10 mod 10 ), 即为 0。
  • 否则,递归地对最后一位数字和其余数字应用算法。
    这里的技巧是,其余数字是通过将原始数字除以 10,然后将接收到的结果乘以得到的10.

关于C - 将 9 转为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59333372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com