分享
 
 
 

排名统计问题(c实现)

王朝other·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

问题描述:

参加任何一项比赛,都会涉及到排名统计问题,由此可见排名统计是多么的重要.这里假设有一项比赛,共有n(1<=n<=200)个人参加,那么请问共有多少种不同的排名(注意:可以很多参赛者在同一个名次,即参赛者名次可以并列)?

数据输入n,输出为不同的排名总数.

如输入

1

2

3

输出为

1

3

13

//程序的性能还不行,算法基本没问题了

==================code================

/**

*Copyright (C) aprin at Xiamen University

*2005-4-24

*/

#include <stdio.h>

#define MAX_N 200

#define MAX_LEN 1000

int cheng(int *a1, int len_a1, int *a2, int len_a2);

int c_fun(int n, int r, int *c) {

int i, j, k, len, temp[3], len_temp, shang[MAX_LEN], len_shang;

/*计算pr/n*/

len=1;

c[0]=1;

for(i=0; i<r; i++) {

j=n-i;

len_temp=0;

while(j!=0) {

temp[len_temp]=j%10;

len_temp++;

j/=10;

}

len=cheng(c, len, temp, len_temp);

}

/*/r!*/

for(i=0; i<MAX_LEN; i++)

shang[i]=0;

for(i=2; i<=r; i++) {

int temp=len-1, yushu;

len_shang=0;

yushu=c[temp];

while(temp>=0) {

shang[len_shang]=yushu/i;

len_shang++;

yushu%=i;

temp--;

yushu=yushu*10+c[temp];

}

/*ji suan du yu de 0*/

k=0;

while(shang[k]==0)

k++;

/*倒转,转移*/

for(j=0; j<MAX_LEN; j++)

if(j<(len_shang-k))/* 实际的长度*/

c[j]= shang[len_shang-1-j];

else

c[j]= 0;

len= len_shang-k;

}

return len;

}

int cheng(int *a1, int len_a1, int *a2, int len_a2) {

int temp[MAX_LEN], i, j;

for(i=0; i<MAX_LEN; i++)

temp[i]=0;

for(i=0; i<len_a2; i++) {

for(j=0; j<len_a1; j++) {

temp[i+j]=temp[i+j]+a1[j]*a2[i];

temp[i+j+1]=temp[i+j+1]+temp[i+j]/10;

temp[i+j]=temp[i+j]%10;

}

if(temp[i+len_a1]>10) {/*ke neng cun zai de zui gao wei chu li*/

temp[i+len_a1+1]=temp[i+len_a1+1]+temp[i+len_a1]/10;

temp[i+len_a1]=temp[i+len_a1]%10;

}

}

i=MAX_LEN-1;

while(temp[i]==0)

i--;

for(j=0; j<MAX_LEN; j++)

a1[j]=temp[j];

return i+1;

}

int add(int *a1, int len_a1, int *a2, int len_a2) {

int i,len;

len=(len_a1>len_a2)?len_a1:len_a2;

for(i=0; i<len; i++) {

a1[i+1]+=(a1[i]+a2[i])/10;

a1[i]=(a1[i]+a2[i])%10;

}

len=MAX_LEN;

while(a1[len-1]==0)

len--;

return len+1;

}

int ok(int *renshu, int i, int n) {

int tot, j;

tot=0;

for(j=0; j<=i; j++)

tot+=renshu[j];

return tot==n;

}

void output(int *result, int len) {

int i;

for(i=len-2; i>=0; i--)

printf("%d", result[i]);

putchar('\n');

}

int main(void) {

int n, i, j, k;

int renshu[MAX_N];

int result[MAX_LEN], len;

scanf("%d", &n);

for(i=0; i<MAX_LEN; i++)

result[i]=0;

len=0;

for(i=0; i<n; i++) {

for(j=0; j<=i; j++)

renshu[j]=1;

do {

if(ok(renshu, i, n)) {

int result_mid[MAX_LEN], len_mid, temp, total_temp;

len_mid=1;

result_mid[0]=1;

total_temp=n;

for(temp=0; temp<i; temp++) {

int zuhe[MAX_LEN], len_zuhe;

len_zuhe=c_fun(total_temp, renshu[temp], zuhe);

total_temp-=renshu[temp];

len_mid=cheng(result_mid, len_mid, zuhe, len_zuhe);

}

len=add(result, len, result_mid, len_mid);

}

renshu[0]++;

for(j=0; j<i; j++)

if(renshu[j]>(n-i)) {

renshu[j+1]++;

renshu[j]=1;

}

}

while(renshu[i]<=(n-i));

}

output(result, len);

getch();

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有