遞迴較難題——分蘋果問題
第四屆程式設計大賽 蘋果
Time Limit:1000MS Memory Limit:65536K
Total Submit:90 Accepted:48
Description
把M個同樣的蘋果放在N個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。
Input
第一行是測試資料的數目t(0 <= t <= 20)。以下每行均包含二個整數M和N,以空格分開。1<=M,N<=10。
Output
對輸入的每組資料M和N,用一行輸出相應的K。
Sample Input
1
7 3
Sample Output
8
分析轉自:http://uzone.univs.cn/blog_2984978_mgf8x9eow0qnb2wreow1.html
My code:
#include<stdio.h> int fun(int m,int n) { if(m<=1||n==1) return 1;//為m可能為和n相等,此時如果要滿足每個盤子都有的話只有一種放法。只有一個盤子也只有一種 if(n==0) return 0; if(n>m)//至少有一個盤子為空 return fun(m,n-1); else//至少一個盤子為空 + 所有盤子都不為空 return fun(m,n-1)+fun(m-n,n); } int main() { int m,t,n; while(scanf("%d",&t)==1) { while(t--) { scanf("%d%d",&m,&n); printf("%d\n",fun(m,n)); } } return 0; }
相關推薦
遞迴較難題——分蘋果問題
第四屆程式設計大賽 蘋果 Time Limit:1000MS Memory Limit:65536K Total Submit:90 Accepted:48 Description 把M個同樣的蘋果放在N個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用K
java 遞迴 設定層級 分級數
//多級角色遞迴查詢方法 public List<ProductCategory> iterateRoles(List<ProductCategory> menuVoList,String pid,Long level){
小白菜oj 1038 [視訊]遞迴8(分解數)
題目:分解數 思路: 直接搜尋,順序要注意。 程式碼: #include<bits/stdc++.h> using namespace std; int n; vector<int&
python遞迴繪製簡單分形樹
對於樹形結構,首先要明白繪製的過程: 1 繪製右數 2 返回節點 3 繪製左樹 4 返回節點 程式碼: """ 作者:sust_ly 功能:繪製分形樹 版本:2.0 日期:2018/3/2 """ import turtle def draw_shu(le
簡單的遞迴——分蘋果到盤子
把M個同樣的蘋果放在N個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。 輸入 每個用例包含二個整數M和N。0<=m<=10,1<=n<=10。 樣例輸入 7 3 樣例輸出 8
演算法——分蘋果問題和算24問題(遞迴演算法)
#include <iostream>using namespace std;/*分為n>m和n<m兩種情況。當n>m時,一定有盤子為空,此時f(m,n)=f(m,m)當n<=m時,分為有盤子為空時(至少有一個盤子為空):f(m,n-1),
分蘋果(列舉加遞迴)
/* 描述:把M個同樣的蘋果放在N個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。 輸入:第一行是測試資料的數目t(0 <= t <= 20)。以下每行均包含二個整數M和N,以空格分開。1<=
POJ 1644 分蘋果 (遞歸解法)
分析 sample output name sca out -m 遞歸解法 iostream 把M個同樣的蘋果放在N個同樣的盤子裏,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。 Input 第一行是測試數據的數目t(0 &
【qduoj - 夏季學期創新題】矩形剖分(遞迴,dp)
題幹: 描述 對一個給定的矩形,將其劃分成儘可能少的正方形,輸出正方形的最少個數。例如,如下圖所示的情況,則輸入為3和4,輸出為4。 輸入 輸入兩個整數中間用空格分開。 輸出 輸出最少分割成的正方形的個數。 輸入樣
【POJ - 1664】放蘋果 (遞迴經典題 或 dp 或 母函式)
題幹: 把M個同樣的蘋果放在N個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。 Input 第一行是測試資料的數目t(0 <= t <= 20)。以下每行均包含二個整數M和N,以空格分開。1<=M,N&
Java:利用遞迴求解分桔子問題
問題描述: 日本著名數學遊戲專家中村義作教授提出這樣一個問題:父親將2520個桔子分給六個兒子。分完 後父親說:“老大將分給你的桔子的1/8給老二;老二拿到後連同原先的桔子分1/7給老三;老三拿到後連同原先的桔子分1/6給老四;老四拿到後連同
水手分椰子——迭代法、遞迴解題
題目內容: n(1< n <=5)個水手在島上發現一堆椰子,先由第1個水手把椰子分為等量的n堆,還剩下1個給了猴子,自己藏起1堆。然後,第2個水手把剩下的n-1堆混合後重新分為等量的n堆,還剩下1個給了猴子,自己藏起1堆。以後第3、4個水手依次按此方法處理。最後,第n個水手把剩下的椰子分為等量的
[Bash]函式與分形-遞迴樹
____________________________________________________________________________________________________ _______________________________________
poj1664放蘋果【遞迴】
vj題目連結:https://cn.vjudge.net/problem/POJ-1664 題目描述 把M個同樣的蘋果放在N個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。 Input 第一行是測試資料的數目t(0 &l
漢諾塔的非遞迴實現(25 分)
藉助堆疊以非遞迴(迴圈)方式求解漢諾塔的問題(n, a, b, c),即將N個盤子從起始柱(標記為“a”)通過藉助柱(標記為“b”)移動到目標柱(標記為“c”),並保證每個移動符合漢諾塔問題的要求。 輸入格式: 輸入為一個正整數N,即起始柱上的盤數。 輸出格式: 每個操作(移動)佔一
poj 1664放蘋果(轉載,不詳細,勿點)(遞迴)
題目和別人的解析傳送門 我的程式碼 #include<bits/stdc++.h> using namespace std; int f(int m,int n) { if(n==0) return 0; if(m==0||m==1) return 1;
4-19 遞迴計算P函式 (10分)
本題要求實現下列函式P(n,x)P(n,x)P(n,x)的計算,其函式定義如下: 函式介面定義: double P( int n, double x ); 其中n是使用者傳入的非負整數,x是雙精度浮點數。函式P返回P(n,x)P(n,x)P(n,x)函式的相應值。題目
4-18 遞迴求Fabonacci數列 (10分)
本題要求實現求Fabonacci數列項的函式。Fabonacci數列的定義如下: f(n)=f(n−2)+f(n−1)f(n)=f(n-2)+f(n-1)f(n)=f(n−2)+f(n−1) (n≥2n\ge 2n≥2),其中f(0)=0f(0)=0f(0)=0,f(1)=1f
4-17 遞迴計算Ackermenn函式 (10分)
本題要求實現Ackermenn函式的計算,其函式定義如下: 函式介面定義: int Ack( int m, int n ); 其中m和n是使用者傳入的非負整數。函式Ack返回Ackermenn函式的相應值。題目保證輸入輸出都在長整型 範圍內。 裁判測試程式
4-16 遞迴求簡單交錯冪級數的部分和 (10分)
本題要求實現一個函式,計算下列簡單交錯冪級數的部分和: f(x,n)=x−x2+x3−x4+⋯+(−1)n−1xn f(x, n) = x - x^2 + x^3 - x^4 + \cdots + (-1)^{n-1}x^nf(x,n)=x−x2+x3−x4+