| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1357 人关注过本帖
标题:拜托序列问题的解法: 对新手有挑战性哦
只看楼主 加入收藏
ngf2006
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-17
收藏
 问题点数:0 回复次数:12 
拜托序列问题的解法: 对新手有挑战性哦

我有一道排序题,恳请各位高手帮忙解决,不胜感激!
大家都知道排列组合的一个公式C m n ,它等于m的阶乘除以n的阶乘和(m-n)的阶乘,这个结果等于m个事物中取出n个事物的所有取法数目总和。我现在想打印出每种取法,怎么做?

具体一个例子,如有abcdef 共6个位置,我拿2个苹果放在这六个中的其中2个位置上,请编程打印出这2个苹果的放法?

更进一步,编程求出C17 +C26 +C35 的每一种排列方式。依次类推C19 +C28+C37+C46,C111+C210+C39+C48+C57等都能求出。

基本公式是C12n-1+C22n-2+C32n-3+……+Cn-1n+1

拜托各位了

[此贴子已经被作者于2006-8-17 17:11:28编辑过]

搜索更多相关主题的帖子: SUP SUB 解法 序列 挑战性 
2006-08-17 17:00
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 

#include <stdio.h>
void main()
{
int i,j,k;
char a[6];
for(i=0; i<6; i++)
{
for (j=i; j<6; j++)
{
char a[6]={'#','#','#','#','#','#'};
a[i]='@'; //@代表苹果
a[j]='@';
for (k=0; k<6; k++)
{
if (i==j)
break;
printf("%c ",a[k]);
}
printf("\n");
}
}

}


中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-18 09:10
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 

基本公式是C12n-1+C22n-2+C32n-3+……+Cn-1n+1


#include <stdio.h>

int Run(int p, int q);
int Fzhi(int x, int y);
int Fmu(int x);

void main()
{
int n, i, su,sum=0;
printf("请输入N的值:\n");
scanf("%d",&n);

for (i=1; i<n; i++)
{
su = Run(2*n-i, i);
sum += su;
}
printf("%d\n",sum);
}

int Run(int p, int q)
{
int su1, fzsum, fmsum;
fzsum = Fzhi(p, q);
fmsum = Fmu(q);
su1 = fzsum/fmsum;
return su1;
}

int Fzhi(int x, int y)
{
int i, su2=1;
for (i=0; i<y; i++)
{
su2 *= x;
x--;
}
return su2;
}

int Fmu(int x)
{
int i, su3=1;
for (i=0; i<x; i++)
{
su3 *= x;
x--;
}
return su3;
}


中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-18 09:59
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
哎,中计了

中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-18 10:11
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

long C(int n,int m)
{
long sum=1;
int i;

if(n==0||m==0)
{
return(1);
}

for(i=0;i<m;i++)
{
sum=sum*(n-i);
}
for(i=0;i<m;i++)
{
sum=sum/(m-i));
}
return(sum);
}
int main()
{
int i,n,m;
long sum=0;

scanf("%d%d",&n,&m);

for(i=1;i<n;i++)

{

sum=sum+C(2*n-i,i);
}
printf("%ld",sum);
return(0);
}

/*楼主试试吧,不一定有用*/


倚天照海花无数,流水高山心自知。
2006-08-18 10:17
ngf2006
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-17
收藏
得分:0 

[此贴子已经被作者于2006-8-18 14:57:19编辑过]


2006-08-18 14:50
ngf2006
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-17
收藏
得分:0 
很感激各位!但我才疏学浅,需要慢慢消化各位的高见,有疑问的话,还要拜请各位!
2006-08-18 14:54
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
嘿嘿.没什么,
只是被你激将了,按照论坛的规则,最好是大家讨论,
说出自己的解决方法,最后,代码还是由你自己来完成比较好,

嘿嘿

中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-18 14:55
ngf2006
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-17
收藏
得分:0 
以下是引用ridwsc在2006-8-18 10:11:36的发言:
哎,中计了

谢谢哈!太感激了!但不知道中什么计啊?

2006-08-18 14:58
ngf2006
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-17
收藏
得分:0 
以下是引用ridwsc在2006-8-18 14:55:56的发言:
嘿嘿.没什么,
只是被你激将了,按照论坛的规则,最好是大家讨论,
说出自己的解决方法,最后,代码还是由你自己来完成比较好,

嘿嘿

谢谢,不好意思了,我……太初级了

2006-08-18 14:59
快速回复:拜托序列问题的解法: 对新手有挑战性哦
数据加载中...
 
   



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

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