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
#include
int main()
{
unsigned long int c[34],s,x;
int n,j,a,b,i;
while(scanf("%d",&n))
{
if(n
c[0]=1;c[n]=1;
for(x=1;x
{
b=1;i=x;s=1;a=n;
while(i>0)
{
s*=a;
a--;
b*=i;
i--;
} c[x]=s/b;
}printf("2^%d=",n);
for(j=0;j<n;j++)
{
printf("%d+",c[j]);
}
printf("%d\n",c[n]);
}
}