放苹果
来源:互联网 发布:sql 身份证 性别 编辑:程序博客网 时间:2024/04/28 00:35
问题描述:
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(注意:5,1,1和1,5,1是同一种分法)
代码如下:
#include <stdio.h>
int f(int m,int n) //m: panzi n:apple
{
if(m==1||n==0)return 1;
if(m>n)return f(n,n);
else
return f(m-1,n)+f(m,n-m);
}
int main()
{
int x,y,t;
while(scanf("%d%d",&x,&y)!=EOF)
{
t=f(y,x);
printf("%d\n",t);
}
return 0;
}
思路分析:
这是一个简单的递归,刚开始的时候没有想到这种思路,看过用递归的方式感觉好神奇,尤其是这种思路,顿时让自己的脑子开阔了许多。感觉编程最重要的就是思想,有了思想一切就不是问题了,所以说培养思想太重要了。
0 0
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- Gerrit error when Change-Id in commit messages are missing
- 发布IOS程序到App store所需的证书
- android-文件存储
- SmsSendUtils 短信发送接口调用
- 坐标旋转公式的推导
- 放苹果
- mysql数据库子查询、连接查询——2014.5.27
- netcat小工具使用
- MPEG2 PCR的物理意义
- XMLHttpRequest
- 写php时遇到的各种错误
- Ubuntu12.04 搭建GIT环境 下载A10源代码示例
- C语言常见错误提示(持续更新)!
- shell变量的作用域