递归实现任意整数转换为字符串
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("
输入整数:");
scanf("%d", &number);
printf("
输出是:");
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
", 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;
}