📜  C程序使用递归来反转数字

📅  最后修改于: 2021-04-29 17:11:24             🧑  作者: Mango

给定整数N ,任务是使用递归反转给定整数的数字。

例子:

方法:请按照以下步骤解决问题:

  • 递归地迭代N的每个数字。
  • 如果传递的N的当前值小于10 ,则返回N。
  • 否则,在每个递归调用之后(基本情况除外),返回递归函数以进行下一次迭代:

下面是上述方法的实现:

C
// C program for the above approach
  
#include 
#include 
#include 
  
// Function to reverse the digits of
// the given integer
int reverse(int N)
{
    return ((N <= 9))
               ? N
               : reverse(N / 10)
                     + ((N % 10)
                        * (pow(10,
                               (floor(log10(
                                   abs(N)))))));
}
  
// Utility function to reverse the
// digits of the given integer
void reverseUtil(int N)
{
    // Stores reversed integer
    int result = reverse(N);
  
    // Print reversed integer
    printf("%d", result);
}
  
// Driver Code
int main()
{
    // Given integer N
    int N = 123;
  
    // Function Call
    reverseUtil(N);
  
    return 0;
}


输出:
321

时间复杂度: O(log 10 N)
辅助空间: O(1)