首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

初学者

2012-03-18 
菜鸟求助台州学院首届新生程序设计竞赛参赛资格时间限制(普通/Java):1000MS/10000MS运行内存限制:65536KBy

菜鸟求助
台州学院首届新生程序设计竞赛参赛资格  
时间限制(普通/Java):1000MS/10000MS 运行内存限制:65536KByte
总提交: 823 测试通过: 203 
描述

台州学院首届新生程序设计竞赛迎来了好多参赛选手,多达N个,可是我们的机房计算机很有限,只有M台计算机,每个选手需要占1台计算机。本来应该安排一场资格赛的,可是来不及了,为了体现公平,竞赛组委会只好抽签决定了(希望下次我们的竞赛组织得更好些)。你能确定通过抽签从N个人中抽取M个人坐满机房有多少种可能性吗? 

输入

数据的第一行包括一个正整数T,接下来有T组数据,每组数据占一行。
每组数据包含两个整数N(报名的人数,1<=N<=30),M(机房计算机的台数,0<=M<=30)

输出

每组数据输出一个整数,每个输出占一行

样例输入


2
3 1
4 4

样例输出


3
1

题目网址 :http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=2627

[解决办法]
额,是说按照题目的样例输入后出错么?
我试了下你的代码,没问题,样例输入结果和输出一样。
你的Runtime Error(Stack Overflow)是怎么来的?说具体点

还有,下次贴代码的时候把代码写的整齐点,这样看着很费劲~
[解决办法]
测试输入: 输出
1 3 1
-1 -1 无解
你的函数都不能解决。特别是第一种情况更常见(N小于M)。

题外:
1.返回值用int就行了,不需要用到double,从N中无排序抽出M个肯定是整数个可能性
2.在这里用递归效率太差了,可以写成迭代。
3.不要使用简单的a, b之类的变量名字,表示不了任何意思。很费解,万一又有另一段
代码的话,到底a, b哪个对哪个
4.加注释。加了的话代码就可以表示任何信息了,其他人阅读也方便点
我也是个新手,正努力学着去避免3. 4。
csdn发表里有插入代码选项,会生产准确的代码格式。
[解决办法]
if(N<=M)return 1;
else
{//组合问题,如果是c/c++,大致估计下int/long是否会溢出?
//还要记得利用组合的公式,可以方便计算。
ret = (n*(n-1)*...*(n-m+1))/(m!);
}

return ret;
[解决办法]
〔code=C/C++〕代码请放在这里〔/code〕

热点排行
Bad Request.