我需要编写一个程序来计算从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;
}
答案 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;
}