zoukankan      html  css  js  c++  java
  • 放苹果

    放苹果(基本递归)

    题目链接:POJ 1663

    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

    题解:

    基本的递归的题,递归的关键:第一要找到递归的状态,这个题的状态就是苹果和盘子在改变。如果剩下的没有空盘子,则可以把每一个盘子放下一个苹果;如果剩下有空盘子,状态变为苹果数目不变,而盘子数目减一。第二就是找到递归的终止条件,本题一种设计就是苹果数目为0时,return 1;盘子为0时,return 0。

    代码:

    #include<iostream>
    using namespace std;
    int fun(int m, int n)
    {
    	if (m < n)return fun(m, m);
    	 if (m == 0)return 1;
    	 if (n == 0)return 0;
    	  return fun(m, n - 1) + fun(m - n, n);
    }
    int main()
    {
    	int m, n;//m个苹果,n个盘子
    	int t;
    	cin >> t;
    	while (t--)
    	{
    		cin >> m >> n;
    		cout << fun(m, n) << endl;
    	}
    	return 0;
    }
    

    这个周没怎么写题,写了两个递归的水题。今天还打了半天的农药,嘤嘤嘤.........

    不疯魔不成活
  • 相关阅读:
    「NOIP2011」聪明的质监员
    「CF5E」Bindian Signalizing
    「NOIP2017」列队
    「NOIP2016」愤怒的小鸟
    「牛客CSP-S2019赛前集训营2」服务器需求
    「牛客CSP-S2019赛前集训营1」仓鼠的石子游戏
    「SCOI2010」幸运数字
    函数求值一<找规律>
    梯形
    F(k)<(维护+枚举)(找规律+递推+枚举)>
  • 原文地址:https://www.cnblogs.com/gzr2018/p/9691067.html
Copyright © 2011-2022 走看看