【程序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();
}
——————————————————————————————————————
更多關于物聯(lián)網培訓的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。