20201321周慧琳

递归实现

递归实现任意整数转换为字符串

include <stdio.h>

void convert(int n)
{
int i;

if ((i = n / 10) != 0)
{                     
    convert(i); //i是余数
}
putchar(n % 10 + '0');//+‘0’操作就是把整数转换为字符串

}

int main()
{
int number;

printf("\n输入整数:");
scanf("%d", &number);
printf("\n输出是:");
if (number < 0)
{                     
    putchar('-');
    number = -number;
}
convert(number);

return 0;

}

注意

递归实现输出斐波拉契数列和递归调用次数

include <stdio.h>

long Fib(int a);
int count; /全局变量count用于累计递归函数被调用的次数,自动初始化为0/
int main()
{
int n, i, x;
printf("Input n:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
count = 0; /* 计算下一项Fibonacci数列时将计数器count清零 /
x = Fib(i);
printf("Fib(%d)=%d, count=%d\n", i, x, count);
}
return 0;
}
/
函数功能:用递归法计算Fibonacci数列中的第n项的值 /
long Fib(int n)
{
long f;
count++; /
累计递归函数被调用的次数,记录于全局变量count中 */
if (n == 0) f = 0;
else if (n == 1) f = 1;
else f = Fib(n - 1) + Fib(n - 2);
return f;
}

posted on 2021-04-25 15:46  20201321周慧琳  阅读(79)  评论(0编辑  收藏  举报