C:无 - 递归函数的递归函数

时间:2018-04-01 12:43:43

标签: c recursion iteration

我需要编写一个程序来计算从0到n的数字的平方。我知道如何使用迭代来完成它,但是如何使用递归重写注释函数?我觉得这是一个简单的任务,我应该毫无问题地处理它,但出了点问题。

#include <stdio.h>
#include<conio.h>

int main()
{
    int x=0, n,m;
    printf("Enter last integer ");
    scanf_s("%d\n", &n);
    while (x < n) /* How to rewrite this function using recursion?*/
    {
        printf("\n%d\n", x*x);
        x++;
    }
    _getch();
    return 0;
}

3 个答案:

答案 0 :(得分:0)

您可以使用以下功能:

void function(int i, int n)
{
     if(i < n)
     {
          printf("\n%d\n", i*i);
          function(i + 1, n);
     }
     else
          return;
}

然后拨打function(0, n);

答案 1 :(得分:0)

解决方案是:

void ipow(int x)
{
    if (x>1)
        ipow(x-1);
    printf ("%d\n",x*x);
}

注意:在递归调用之前或之后放置print语句会以删除或递增顺序打印结果。

答案 2 :(得分:0)

我正在重新编写您的程序以满足递归方式。

#include <stdio.h>
#include<conio.h>

void square(int x, int n)
{
 if(x < n)
 {
      printf("\n%d\n", x*x);
      function(++x, n);
 }
 else
      return;
}


int main()
{
 int x=0, n,m;
 printf("Enter last integer ");
 scanf_s("%d\n", &n);
 square(x,n);
   _getch();
 return 0;
}