【程序26】 题目:利用递归方法求5!。
1. 程序分析:递归公式:fn=fn_1*4!
2. 程序源代码:
#include "stdio.h"
#include "conio.h"
main(){
int i;
int fact();
for(i=0;i<5;i++)
printf("\40:%d!=%d\n",i,fact(i));
getch();}int fact(j)int j;{
int sum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
return sum;
}
——————————————————————————————————————
【程序27】 题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
1. 程序分析:
2. 程序源代码:
#include "stdio.h"
#include "conio.h"
main(){
int i=5;
void palin(int n);
printf("\40:");
palin(i);
printf("\n");
getch();}void palin(n)int n;{
char next;
if(n<=1)
{
next=getchar();
printf("\n\0:");
putchar(next);
}
else
{
next=getchar();
palin(n-1);
putchar(next);
}
}
——————————————————————————————————————
【程序28】 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
1. 程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
2. 程序源代码:
#include "stdio.h"
#include "conio.h"
age(n){
int n;
int c;
if(n==1) c=10;
else c=age(n-1)+2;
return(c);
}
main(){
printf("%d",age(5));
getch();
}
——————————————————————————————————————
【程序29】 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
1. 程序分析:学会分解出每一位数,如下解释:()
2. 程序源代码:
#include "stdio.h"
#include "conio.h"
main( ){
long a,b,c,d,e,x;
scanf("%ld",&x);
a=x/10000;/*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百位*/
d=x%100/10;/*分解出十位*/
e=x%10;/*分解出个位*/
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
else if (e!=0) printf(" there are 1,%ld\n",e);
getch();
}
——————————————————————————————————————
【程序30】 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
1. 程序分析:同29例
2. 程序源代码:
#include "stdio.h"
#include "conio.h"
main( ){
long ge,shi,qian,wan,x;
scanf("%ld",&x);
wan=x/10000;
qian=x%10000/1000;
shi=x%100/10;
ge=x%10;
if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
printf("this number is a huiwen\n");
else
printf("this number is not a huiwen\n");
getch();
}
——————————————————————————————————————
更多关于物联网培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。