首页 > 解决方案 > 使用递归在 C 中解决 PairInverse 问题

问题描述

到目前为止,我有三个解决方案,但我必须在没有静态的情况下进行,并且不使用库中的任何函数,如日志、任何全局或 [] 也没有指针。我现在只是没有想法。我不想要解决方案,而只是一个正确方向的想法,因为我错过了什么。这真的很有帮助。

long reverse(long);
 
int main()
{
   long n, r;
   printf("Enter any number: ");
   scanf("%ld", &n);
 
   r = reverse(n);
 
   printf("%ld\n", r);
 
   return 0;
}

long reverse(long n) {
   
   
   static long r = 0;
   
   if (n == 0)
      return 0;
   
   r = r * 100;
   r = r + n % 100;
   reverse(n/100);
   return r;
}

第二种解决方案

#include<stdio.h>


long fun(long num);

long main(){
   long n,number;
   printf("Enter any number: ");
   scanf("%ld", &n);
   number=fun(n);
   printf("\nAfter reverse the number is :%ld",number);
   return 0;
}

long fun(long num)
{
    
    long digit = (long) log10(num);
    
    
    if(num == 0)
        return 0;
    
    return ((num%100 * pow(10, digit-1)) + fun(num/100));
}

标签: c

解决方案


推荐阅读