求一个递归程序观察递归调用的过程

求一个递归程序观察递归调用的过程,第1张

#include<stdio.h>

#include<math.h>

#include<stdlib.h>

void printcba(long m)//c语言顷戚仔递归实现输入一个整数的每位输出

{

if(m<0) //判断输入值是否为负数,是负数输出负雀汪号

{

printf("%5c",'-')

m=-m

}

if(m>=10){//判断是否仔世已到数的开头,如果不满足则到,开始递归返回

m=m/10

printcba(m)

printf("%5d",m%10)

}

}

void main(){

long x

//clrscr()

system("cls")

printf("input x:")

scanf("%d",&x)

printcba(x*10)//为了使有相同的子问题,初始化x*10,如果不乘10则输入值末尾数不会显示输出

printf("\n")

}

以 C 语言卜肆为例,举一个最最经典的例子就是:计算一个整数的阶乘

#include <stdio.h>

int my_jiecheng( int ) /* 计算阶陵卖乘子函数原型说明 */

int main( )

{

int num, result = 0

scanf("%d", &num) /* 从键盘输入一个整数 num */

result = my_jiecheng(num) /* 调用计算阶乘子函型汪轿数 my_jeicheng( ),并将最终的结果保存在 result 变量中 */

printf("result = %d\n", result ) /* 输出最后的计算结果 */

return 0

}

int my_jiecheng( n )

{

if( n == 1 ) /* 定义: 1!== 1,即:1 的阶乘等于 1 */

return (1) /* n == 1,返回 1 */

else /* 递归调用 my_jiecheng( ) 子函数 */

return( n * my_jiecheng(n-1) ) /* 否则的话,n != 1,递归调用 n*(n-1) ! */

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12566153.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存