日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

超星学习通 吉林大学 程序设计基础 实验07 递归程序设计(2022级)

發(fā)布時(shí)間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超星学习通 吉林大学 程序设计基础 实验07 递归程序设计(2022级) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

1. 排列組合

2.?Hermite多項(xiàng)式

3.?Ackerman函數(shù)

4.?最大公因數(shù)

5.?順序檢索

6.?最大元素

7.?數(shù)組反序

8.?截木條

9.?十進(jìn)制轉(zhuǎn)換任意進(jìn)制


1. 排列組合

題目編號(hào):Exp06-Basic01,GJBook3-10-02

題目名稱:排列組合

問題描述:編寫程序求函數(shù)C(m,n)的值。

輸入:從鍵盤隨機(jī)輸入一個(gè)自然數(shù)和一個(gè)非負(fù)整數(shù),分別作為m和n的值(m≥n)。

輸出:函數(shù)C(m,n)的值。

樣例1:輸入:4? 1? ?輸出:4?

樣例2:輸入:6? 2? ?輸出:15

#include<stdio.h> int c(int,int); int main(void) {int x,y;scanf("%d%d",&x,&y);printf("%d",c(x,y));return 0; } int c(int m,int n) {if(n<0)return 0;if(n==0)return 1;if(n==1)return m;if(m<2*n)return c(m,m-n);if(m>=2*n)return c(m-1,n-1)+c(m-1,n); }

?

2.?Hermite多項(xiàng)式

題目編號(hào):Exp06-Basic02,GJBook3-10-03

題目名稱:Hermite多項(xiàng)式

題目描述:編寫程序,用遞歸方法求解Hermite 多項(xiàng)式值。Hermite 多項(xiàng)式定義如下。

輸入:從鍵盤隨機(jī)輸入一個(gè)非負(fù)整數(shù)和一個(gè)實(shí)數(shù),作為n和x的值。

輸出:H~n~(x)的值,精確到小數(shù)點(diǎn)后2位。

樣例1:輸入:0??1.5? 輸出:1.00

樣例2:輸入:2??2.4? 輸出:21.04

#include<stdio.h> float h(int,float); int main(void) {int a;float b,y;scanf("%d%f",&a,&b);y=h(a,b);printf("%.2f",y);return 0; } float h(int n,float x) {if(n==0)return 1.0;else if(n==1)return 2*x;elsereturn 2*x*h(n-1,x)-2*(n-1)*h(n-2,x); }

3.?Ackerman函數(shù)

題目編號(hào):Exp06-Basic03,GJBook3-10-04

題目名稱:Ackerman函數(shù)

問題描述:編寫程序,計(jì)算?Ackerman?函數(shù)值。Ackerman?函數(shù)定義如下

輸入:從鍵盤隨機(jī)輸入兩個(gè)非負(fù)整數(shù),分別作為m和n的值。

輸出:Ack(m,?n)的值。

樣例1:輸入?2 3??輸出?9

樣例2:輸入?3 2??輸出?29

樣例3:輸入?0 3??輸出?4

#include<stdio.h> int ack(int,int); int main(void) {int x,y;scanf("%d%d",&x,&y);printf("%d",ack(x,y));return 0; } int ack(int m,int n) {if(m==0)return n+1;if(n==0)return ack(m-1,1);if(m>0&&n>0)return ack(m-1,ack(m,n-1)); }

?

4.?最大公因數(shù)

題目編號(hào) :Exp06-Basic04

題目名稱:最大公因數(shù)

題目描述:編寫程序,用遞歸方法求解m、n最大公約數(shù)。對(duì)正整數(shù)u和v 可以采用歐幾里德輾轉(zhuǎn)相除算法求它們的最大公因數(shù),具體過程如下:

u% v → r~1~

v % r~1~ → r~2~

r~1~% r~2~ → r~3~

r~2~ % r~3~ → r~4~

? ?… … ?

r~n-1~% r~n~ → r~n+1~=0

當(dāng)余數(shù)r~n+1~=0時(shí),計(jì)算過程結(jié)束,r~n~ 為正整數(shù)u 、v的最大公因數(shù)。

輸入:從鍵盤隨機(jī)輸入兩個(gè)正整數(shù)m和n。

輸出:最大公因數(shù)。

樣例1:輸入:12?15? 輸出:3

樣例2:輸入:28?49? 輸出:7

#include<stdio.h> int f(int,int); int main(void) {int x,y;scanf("%d%d",&x,&y);printf("%d",f(x,y));return 0; } int f(int m,int n) {int r;if(m%n==0)return n;r=m%n;return f(n,r); }

5.?順序檢索

題目編號(hào):Exp06-Basic05,GJBook3-10-06

題目名稱:順序檢索

題目描述:編寫程序,用遞歸方法在整數(shù)組中進(jìn)行順序檢索。

輸入:第一行輸入一個(gè)正整數(shù)n(0<n≤100),表示數(shù)組的元素個(gè)數(shù);

? ? ? ? ? ?第二行依次輸入n個(gè)整數(shù),作為數(shù)組的元素;

? ? ? ? ? ?第三行輸入待檢索的關(guān)鍵字。

輸出:如果數(shù)組中含有關(guān)鍵字,則輸出其首次出現(xiàn)的位置(下標(biāo)值較小的位置)否則輸出NULL。

樣例1:輸入: 8 0?2?3?4?5?9?10?8 3

?????????????輸出: 2

樣例2:輸入: 8 0?2?3?4?5?9?10?8 6?

?????????????輸出: NULL

#include<stdio.h> int f(int); int a[100],key,n; int main(void) {int i;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",a+i);scanf("%d",&key);if(f(0)==-1)printf("NULL");elseprintf("%d",f(0));return 0; } int f(int m) {if(m==n)return -1;if(*(a+m)==key)return m;elsereturn f(m+1); }

?

6.?最大元素

題目編號(hào):Exp06-Enhance01,GJBook3-10-05

題目名稱:最大元素

題目描述:編寫程序,用遞歸方法求解長(zhǎng)度為n的整型數(shù)組中最大元素值。

輸入:第一行輸入一個(gè)正整數(shù)n(0<n≤100),表示數(shù)組的元素個(gè)數(shù);第二行依次輸入n個(gè)整數(shù),做為數(shù)組的元素。

輸出:最大元素的值。

樣例1:輸入: 10

???????????????????????? 9?8?7?6?5?4?3?2?1?0

?????????????輸出: 9

樣例2:輸入: 10

?????????????????????????0?1?2?3?4?5?6?7?8?9

? ? ? ? ? ? ?輸出: 9

#include<stdio.h> int f(int *,int); int max(int,int); int a[100]; int main(void) {int i,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",a+i);printf("%d",f(a,n));return 0; } int f(int *p,int n) {if(n==0)return 0;return max(*p,f(p+1,n-1)); } int max(int x,int y) {if(x>y)return x;if(x<=y)return y; }

?

7.?數(shù)組反序

題目編號(hào):Exp06-Enhance02

題目名稱:數(shù)組反序

題目描述:編寫程序,用遞歸方法反序數(shù)組。

輸入:第一行輸入一個(gè)正整數(shù)n(0<n≤100),表示數(shù)組的元素個(gè)數(shù);第二行依次輸入n個(gè)整數(shù),作為數(shù)組的元素。

輸出:順次輸出逆序后數(shù)組中元素,元素間以一個(gè)西文空格間隔,最后一個(gè)元素后無(wú)字符。

樣例1:輸入: 8

? ? ? ? ? ? ? ? ? ? ? ? ?0?2?3?4?5?9?10?8

? ? ? ? ? ? ?輸出: 8?10?9?5?4?3?2?0

樣例2:輸入: 5

? ? ? ? ? ??? ? ? ? ? ???0?2?3?3?5

?????????????輸出: 5?3?3?2?0

#include<stdio.h> void f(int *,int *); int a[100]; int main(void) {int i,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",a+i);f(a,a+n-1);for(i=0;i<n;i++){printf("%d",*(a+i));if(i!=n-1)printf(" ");}return 0; } void f(int *p,int *q) {int r;if(p>=q)return;r=*p;*p=*q;*q=r;f(p+1,q-1); }

?

8.?截木條

題目編號(hào) :Exp06-Enhance03

題目名稱:截木條

題目描述

給定一個(gè)長(zhǎng)度為n的木條,將其在大致2/5的位置截?cái)?#xff0c;得到2個(gè)長(zhǎng)度仍為整數(shù)的木條;如果新得到的木條的長(zhǎng)度仍舊超過規(guī)定長(zhǎng)度k,將繼續(xù)按照上述方法處理得到的木條,直到所有木條的長(zhǎng)度都不大于k。

編寫程序,用遞歸方法計(jì)算一個(gè)長(zhǎng)度為n的木條,當(dāng)規(guī)定長(zhǎng)度為k時(shí),其經(jīng)過上述截?cái)噙^程會(huì)得到多少根木條。其中:n、k均為正整數(shù),且假設(shè)木條截?cái)嗨枚棠緱l長(zhǎng)度四舍五入為正整數(shù),長(zhǎng)木條長(zhǎng)度為總長(zhǎng)減去短木條長(zhǎng)度。

輸入:順次從鍵盤輸入兩個(gè)正整數(shù)n和k。

輸出:木條根數(shù)。

樣例1:輸入: 20??4

? ? ? ? ? ? ?輸出: 7

樣例2:輸入: 3?20

? ? ? ? ? ? ?輸出: 1

#include<stdio.h> int f(int,int); int main(void) {int n,k;scanf("%d%d",&n,&k);printf("%d",f(n,k));return 0; } int f(int x,int y) {if(x<=y)return 1;return f(x*2/5,y)+f(x-x*2/5,y); }

?

9.?十進(jìn)制轉(zhuǎn)換任意進(jìn)制

題目編號(hào) :Exp06-Enhance05,freshman-1022

題目名稱:十進(jìn)制轉(zhuǎn)換任意進(jìn)制

題目描述:編寫程序,用遞歸方法將十進(jìn)制的非負(fù)整數(shù) N 轉(zhuǎn)換為 b 進(jìn)制數(shù)(2≤b≤36),其中字符、ASCII碼值和數(shù)值之間的對(duì)應(yīng)關(guān)系如下:

輸入:一行輸入兩個(gè)非負(fù)整數(shù),分別是十進(jìn)制的 N 和 b ?,其中 0 <=N <=2^31 ,2 <=b <= 36 。

輸出:N 的 b 進(jìn)制數(shù)。

樣例1:輸入: 579?8? 輸出: 1103

樣例2:輸入: 579?20? 輸出: 18J

#include<stdio.h> void f(long long,int); int main(void) {long long n;int b;scanf("%lld%d",&n,&b);if(n==0)//很重要printf("0");elsef(n,b);return 0; } void f(long long x,int y) {if(x==0)return;f(x/y,y);if(x%y<=9)printf("%d",x%y);elseprintf("%c",x%y+55); }

總結(jié)

以上是生活随笔為你收集整理的超星学习通 吉林大学 程序设计基础 实验07 递归程序设计(2022级)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。