求大神告诉我这个算法的思路,题目如下
c4droid吧
全部回复
仅看楼主
level 7
Description
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
2016年11月03日 16点11分 1
level 7
#include<stdio.h>
int main ()
{
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<i;j++)//
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
printf("2^%d=",n);
i=n; //
for(j=0;j<i;j++)
{printf("%d+",a[i][j]);}
printf("%d",a[i][i]);
printf("\n");
}
return 0;
}
2016年11月03日 16点11分 2
level 7
一楼是那个我看不懂的代码
2016年11月03日 16点11分 3
level 11
二维数组啊,你可以把测试数据代入代码中自己尝试读一读,让后思路就清楚了。
2016年11月04日 00点11分 6
二维数组我知道,但是他那个计算数值的没看懂
2016年11月04日 01点11分
二维数组知道,但是他那每个数值都咋算的,没看懂
2016年11月04日 01点11分
看是不容易看出来的,我的意思是要代入数据然后自己一步步运行,然后就明白了。
2016年11月04日 01点11分
@相遇英灵殿👻 嗯嗯,好
2016年11月04日 01点11分
1