Board logo

标题: [原创] [打印本页]

作者: huqikesha    时间: 2005-9-30 19:01     标题: [原创]

[watermark]main() { int i,k,t,s=1; for(i=0;i<+9;i++) {printf("%5d", s); for(k=i,t=1;k>=0;k- -,t++) if(k) {s=s*k/t; printf("%5d", s);} else printf("\n"); } } 本程序之所以这样编写,是因为扬辉三角可以看成一个对称的“图形”,且没一行的第一个数和最后一个数都是1,所以没一行的开始都打印出1即“printf("%d", s);”。还有扬辉三角的来由是二项展开式(a+b)n的系数,即Cnr,且Cnr=Cnr-1*[n-(r-1)]/(r-1),所以可用“(k=i;k>=0;k- -,t++) ”和s=s*k/t来表示s的后面一个数。用else来控制换行。 [/watermark]




欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/) Powered by Discuz! 7.2