如何将迭代函数传递给递归
void triangulo(int max)
{
int i, j;
for(i = 1; i <= max; i++)
{
for(j = 0; j < i; j++)
printf("%d", j + 1);
printf("\n");
}
}
任何人都有任何想法?或者不可能这样做?
更新
void triangulo(int n, int i, int j)
{
if(i <= n)
{
if(j < i)
{
printf("%d", j + 1);
triangulo(n, i, j + 1);
}
if (j == i)
{
printf("\n");
triangulo(n, i + 1, 0);
}
}
}
答案 0 :(得分:1)
试试这个:在这里我将i
和j
作为参数,因为在每次递归中它们都有不同的值。
void triangulo(int max,int i,int j) //make i and j as arguments
{
if(i<max)
{
if(j<max)
{
printf("%d",j);
triangulo(max, i, ++j);//dont use post increment operation
}
else
{
printf("\n");
triangulo(max , ++i, 0);
}
}
}
通常,
if
和else
作为条件和答案 1 :(得分:0)