最近闲来准备英语,同时准备几个项目。所以复习一些C语言,不复习还好,一旦复习发现懂得东西基本上已经还给书本了。各种算法,处理方式都忘得差不多了,罢了罢了,路漫漫其修远,重新开始吧~
就拿打印杨辉三角开刀吧!
所谓杨辉三角,是指每一行的数都是组合的系数,同时也是上一行的一个递推关系。刚开始复习时我不经惶恐,差点连排列组合都不会算了,对不起小虎老师啊,索性从挑小球开始推导,终于还是记得了一个大概。
下面是杨辉三角打印前十行的程序代码:运行在VC6.0-之上:
(题外话,本来为了装了VS2010,结果为了方便快捷选择了VC6.0,WIN7的兼容性真是差的一塌糊涂啊,只好装虚拟机上了==)
#include <stdio.h>
#define n 10
#define wideword 6
void main(void)
{
inta[11],b[11];
inti=0,j=1;
//
for(i=0;i<n;i++)
{
for(j= 1;j < i;j++)
{
a[j]=b[j-1]+b[j];
}
a[i]=1;
//preaprefor the next i-1 hang
for(j= 0;j <= i;j++)
b[j]= a[j];
//printthe i hang
for(j= 0;j<=40-i*(wideword/2);j++)
printf("%c",'');
for(j=0;j<=i;j++)
printf("%6d",a[j]);
printf("\n");
}
}
每天进步一点点,让优秀成为一种习惯!