C语言题目求解——组合数
2^n=C(n,0)+C(n,1)+…+C(n,n)。其中^表示幂,C(n,x)表示组合数,即C(n,x)=n!/((n-x)!x!)。现在给你n(0<=n<=33),要...
2^n=C(n,0)+C(n,1)+…+C(n,n)。其中^表示幂,C(n,x)表示组合数,即C(n,x)=n!/((n-x)!x!)。现在给你n(0<=n<=33),要你输出2^n的组合数之和的表达式
输入
每行一个整数n,如果n为负数则输入结束。
输出
每行输出一个表达式,表达式格式形似为2^n=C(n,0)+C(n,1)+…+C(n,n)。
Sample Input
2
3
-1
Sample Output
2^2=1+2+1
2^3=1+3+3+1 展开
输入
每行一个整数n,如果n为负数则输入结束。
输出
每行输出一个表达式,表达式格式形似为2^n=C(n,0)+C(n,1)+…+C(n,n)。
Sample Input
2
3
-1
Sample Output
2^2=1+2+1
2^3=1+3+3+1 展开
1个回答
展开全部
#include <stdio.h>
int jiecheng(int n)
{
if(n == 1 || n==0)
return 1;
else
return n*jiecheng(n-1);
}
int main()
{
int n;
int i;
int t;
int count = 0;
while(1)
{
scanf("%d",&n);
if(n == -1)
break;
printf("2^%d=",n);
for(i = 0; i <= n; i++)
{
count ++;
t = jiecheng(n)/(jiecheng(n-i)*jiecheng(i));
if(count == 0)
printf("%d",t);
else
printf("+%d",t);
}
printf("\n");
}
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询