| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 669 人关注过本帖
标题:[求助]这个怎么编呀??
只看楼主 加入收藏
流浪者
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-4-24
收藏
 问题点数:0 回复次数:4 
[求助]这个怎么编呀??
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 先谢谢了!!!
搜索更多相关主题的帖子: 苹果 盘子 
2005-04-26 20:04
shagpg2008
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-4-27
收藏
得分:0 

#include<stdio.h> #include<math.h>

int numbers(int plate_num, int apple_num){ int sum = 0, i = 1, apple_cur = 0; if(apple_num == 1)return 1; if(plate_num == 1)return 1; if(plate_num == 2)return (floor(apple_num/2)); if(apple_num == plate_num)return 1;

if(plate_num >= 3){ i = plate_num; apple_cur = apple_num - i; for(; i > 0; i--){ if(i > apple_cur){ i = apple_cur; } sum += numbers(i, apple_cur); } }

return sum; }

main(){ int plate_num, apple_num, i; int sum = 0; printf("please input the numbers of plate and apple:\n"); scanf("%d%d", &plate_num, &apple_num);

if(plate_num > apple_num){ plate_num = apple_num; }

for(i = plate_num; i > 0; i--){ sum += numbers(i, apple_num); }

printf("there is %d way to array them.\n", sum); printf("k is %d.\n", sum); }

2005-04-29 13:35
weizheng
Rank: 1
等 级:新手上路
威 望:2
帖 子:286
专家分:0
注 册:2005-4-21
收藏
得分:0 
有些类似于汉诺塔的问题

温和如玉,完美纯正。
2005-04-29 21:14
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
收藏
得分:0 
以下是引用weizheng在2005-4-29 21:14:21的发言: 有些类似于汉诺塔的问题
思路严重偏离

土冒
2005-04-29 23:26
shagpg2008
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-4-27
收藏
得分:0 
对,都要递归调用,这样就行了
2005-04-30 21:15
快速回复:[求助]这个怎么编呀??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027983 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved