求助一个组合数问题!本人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的组合数之和的表达式 输入:
每行一个整数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
老师说利用杨辉三角做,我查了下杨辉三角的程序,再写下来这个程序,但总是输不出想要的结果,望高手解答(不要笑话我啊o(>﹏<)o),我的程序如下:
#include<stdio.h>
int main ()
{
unsigned int n,i,j,a[100][100];
while(scanf("%d",&n)==1)
{
if(n<0)break;
for(i=0;i<=n;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<n;i++)
{
for(j=1;j<n;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
printf("2^%d=",n);
for(i=0;i<=n;i++)
{
for(j=0;j<i;j++)
{printf("%d+",a[i][j]);}
}
printf("%d",a[n][n]);
printf("\n");
}
return 0;
}
[ 本帖最后由 Maple1992 于 2011-12-4 13:59 编辑 ]