| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 560 人关注过本帖
标题:[求助]问题有点难度啊!!大家进来看看!
只看楼主 加入收藏
happyocean
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-3-24
收藏
 问题点数:0 回复次数:4 
[求助]问题有点难度啊!!大家进来看看!
题目:n个数之中分别选中1到n个数的所有可能

然后输出

例如n个数之中选出其中任意不同的1个数,输出所有可能

n个数之中选出其中任意不同的2个数,输出所有可能

递推!!
搜索更多相关主题的帖子: 难度 
2005-04-03 01:40
skycanny
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2005-3-5
收藏
得分:0 

#include <stdio.h> #include <stdlib.h>

int n_factorial(int n) /* define the function of caculate n! */ { int i, result; if( n== 0) return 1; else { result = 1; for(i = 1; i <= n; i++) result = result * i; return result; } }

/* define the function of caculate combination number */ int combination_m_n(int m, int n) { return ( n_factorial(n) /(n_factorial(m) * n_factorial(n - m) ) ); }

main() { int i,n; printf("Please input the number:\n"); scanf("%d", &n); if( n > 13 ) { printf("Overflow error, the input is too great\n"); exit(1); } for(i = 1; i <= n; i++) printf("All possibility of seleting %d is %d\n", i, combination_m_n(i, n)); } PS:好像没有用到递推,你的意思是依次类推?

2005-04-03 10:47
simpley
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2005-2-23
收藏
得分:0 
这个问题我最拿手了.,这可以作为解决背包问题的穷举算法.
可以用二叉树解决.再加上递推或堆栈

myQQ::445750010
2005-04-04 11:07
simpley
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2005-2-23
收藏
得分:0 
我以前用递推和堆栈分别编过一次这个程序,代码找不到了,说一下思路吧:
比如(n,m)可以分为(n-1,m-1),(n-1,m)这就成了一个二叉树,m==1,m==n时递推结束.就可以把结果打出来.

myQQ::445750010
2005-04-04 11:21
happyocean
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-3-24
收藏
得分:0 
我也做了一个就是用二进制的递增表示每一种可能!!! http://bbs.bc-cn.net/bbs/dispbbs.asp?boardID=5&ID=14514&page=1 有我用到的题目

2005-04-04 20:01
快速回复:[求助]问题有点难度啊!!大家进来看看!
数据加载中...
 
   



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

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