我的问题是:
编写一个递归函数,该函数以自然数作为参数,并返回向后读取的数字值(十进制数字的顺序相反):
例如:f(3120) = 213
我已经解决了这个问题,但是我使用static
来存储我的反向号码,如下所示:
unsigned long f(unsigned long n){
static long rev;
if(n==0)
return 0;
else
{
rev=rev*10+n%10;
f(n/10);
}
return rev;
}
但我想知道是否有一种方法可以解决这个问题,而不使用
static
数据类型,并且在函数中只保留一个参数。 最佳答案
当然。只需从代码中删除单词static
并循环计算即可:
unsigned long f(unsigned long n){
long rev = 0;
while(n != 0) {
rev = rev*10 + n%10;
n /= 10;
}
return rev;
}
关于c - 递归功能,用于逆转数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32943131/