今天参加了一个笔试,我非常荣幸的可能被淘汰,拿到卷子一帆风顺的做下去,就疏忽了!
看错一个题,而且是大题(最后一个程序题),非常遗憾,真没想到!!!!不过我前面做的还行!!
应届生嘛!!水平都差!!!!只可以祈祷了!!!!
一走出教室,就发现了!!可惜机会不会再重来了!!!大家要吸取教训,千万不能轻敌!!!我又做出了牺牲!!!!
仔细一想这题的发挥空间确实很大!!!!!!主要是考思维严密性,还是简单
言归正传让我们看看这题吧!!!!
实现 p=k!/(m-k)! (哈哈简单吧!!!) 结果我看成实现 p=k!/(m-k)^k 去了!!!昏!!!!我戴了眼镜的!!!
(别飞砖头啊!!哈哈)
#include <stdio.h>
int jsbcs(int k) //计算被除数
{
int i=1;
for(;k>0;k--)
i*=k;
return i;
}
int jscs1(int m,int k) //计算正数阶乘作为除数
{
int i=1,j=m-k;
for(;j>0;j--)
i*=j;
return i;
}
int jscs2(int m,int k) //计算负数阶乘作为除数
{
int i=1,j;
j=m-k;
for(;j<0;j++)
i*=j;
return i;
}
int main(void)
{ int p,m,k,cs,bcs,flag;
scanf("%d,%d",&m,&k); //输入时采用*,*的格式
bcs=jsbcs(k); //计算被除数
if(m>=k) //判断求正数阶乘
{
if(m>k)flag=1;
else flag=0;
}
else flag=-1; //判断负数阶乘
switch(flag) //求p
{
case 0 : printf("wrong\n",p);break; //除数为零的情况
case 1 : cs=jscs1(m,k); //正数阶乘的情况求p
p=bcs/cs;
printf("the p is: %d\n",p); break;
case -1 : cs=jscs2(m,k); //负数阶乘的情况求p
p=bcs/cs;
printf("the p is: %d\n",p); break;
}
return 0;
}
昏!!!格式没了!!!不过这程序没完,还需要完美,只要仔细去想,它确实是道发散题!!!
这题10分,如果我打分的话,上面最多7分!!! 大家闲着也是闲着,不如给它添点砖(不是扔我,快闪)!!哈哈