黑马程序员技术交流社区
标题:
打印出杨辉三角形
[打印本页]
作者:
Tony鱼先森
时间:
2015-4-18 22:29
标题:
打印出杨辉三角形
本帖最后由 Tony鱼先森 于 2015-4-18 23:25 编辑
打印一个杨辉三角形,只要输出10行就好了!各位坛友有人会吗?
我被难在了,如何处理每一行结尾的那个1上,不知道怎么处理,大家给点思路意见。
作者:
wslinke
时间:
2015-4-18 23:20
#include <stdio.h>
#define kLines 10 //行数
int main(int argc, const char * argv[]) {
//定义两个int数组,preLine存放上一行数据,currentLine存放当前行数据
int preLine[kLines]={1},currentLine[kLines]={0};
//row代表行号,输出10行
for (int row = 1; row <= kLines; row++) {
//输出每行第一个数字之前的空格
for (int k = 0; k < kLines-row; k++) {
printf(" "); //如果行数多了,数字大了就可以调整这里
}
//输出当前行的数字,第row行有row个数字
for (int j = 0; j < row; j++) {
//将第一个数字和最后一个数字设置为1
if(j == 0 || j == row-1)
{
currentLine[j] = 1;
}
else //将除了首尾以外的第j个数字,赋值为上一行第j-1个,第j个数字的和
currentLine[j] = preLine[j-1]+preLine[j];
//打印这个数字
printf("%-4d",currentLine[j]); //如果行数多了,数字大了就可以调整这里
}
//输出完一行,将这行数据保存到preLine数组,以便下一行计算
for (int j = 0; j < row; j++) {
preLine[j] = currentLine[j];
}
//每打印一行数字后换行
printf("\n");
}
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2