资源描述:
《C程序经典题目94.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、此文档收集于网络,如有侵权,请联系网站删除题目:利用递归方法求5!。1.程序分析:递归公式:fn=fn_1*4!2.程序源代码:#include"stdio.h"main(){inti;intfact();for(i=0;i<5;i++) printf("40:%d!=%d",i,fact(i));}intfact(j)intj;{intsum;if(j==0) sum=1;else sum=j*fact(j-1);returnsum;}===========================================================
2、===【程序27】题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。1.程序分析:2.程序源代码:#include"stdio.h"main(){inti=5;voidpalin(intn);printf("40:");palin(i);printf("");}voidpalin(n)intn;{charnext;if(n<=1) { next=getchar(); printf(" :"); putchar(next);此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除 }else { next=getchar();
3、 palin(n-1); putchar(next); }}==============================================================【程序28】题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。2.程序源代码
4、:age(n)intn;{intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);}main(){printf("%d",age(5));}==============================================================【程序29】题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。1.程序分析:学会分解出每一位数,如下解释:2.程序源代码:main(){longa,b,c,d,e,x;scanf("%ld",&x);a=x/10000;/*分解出万位*/
5、b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出个位*/if(a!=0)printf("thereare5,%ld%ld%ld%ld%ld",e,d,c,b,a);elseif(b!=0)printf("thereare4,%ld%ld%ld%ld",e,d,c,b); elseif(c!=0)printf("thereare3,%ld%ld%ld",e,d,c);此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除 els
6、eif(d!=0)printf("thereare2,%ld%ld",e,d); elseif(e!=0)printf("thereare1,%ld",e);}此文档仅供学习与交流