只用一个一维数组打印杨辉三角
2013-03-16 14:28
274 查看
要求:1)用户输入打印行数N
2)只用一个一维数组,并且数组的大小不得大于行数N
3)杨辉三角如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
……
……
程序大体思想为:用一个一维数组存储上一行的值,从而可以计算出本行的值。但是需要注意的是必须从后往前计算,否则会覆盖掉需要的值。
如:计算第四行的值 计算第4个值为data[4] + data[3],然后将结果存入data[4]。
反之若从第一个数字开始计算,会出现:第二个数 = data[1] + data[2],然后将值存入data[2]。那么第三个数如何计算呢??
代码如下:
2)只用一个一维数组,并且数组的大小不得大于行数N
3)杨辉三角如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
……
……
程序大体思想为:用一个一维数组存储上一行的值,从而可以计算出本行的值。但是需要注意的是必须从后往前计算,否则会覆盖掉需要的值。
如:计算第四行的值 计算第4个值为data[4] + data[3],然后将结果存入data[4]。
反之若从第一个数字开始计算,会出现:第二个数 = data[1] + data[2],然后将值存入data[2]。那么第三个数如何计算呢??
代码如下:
#include <stdio.h> #include <malloc.h> void printYanghui(int line); int main(void) { int line = 0; printf("请输入行数N:"); scanf("%d", &line); printYanghui(line); return 0; } void printYanghui(int line) { int i, j; int* data = (int*)malloc(line*sizeof(int));//动态创建数组 if(line==1)//只打印一行 { printf("1\n"); } else if(line == 2)//只打印2行 { printf("1\n1\t1\n"); } else//打印三行以上 { data[0] = 1; data[1] = 1; data[2] = 1; printf("1\n1\t1\n"); for(i=3; i<line+1; i++)//第i行的数字个数为i { data[i-1] = 1; for(j=i-2; j>0; j--)//按照从倒数第二个数字开始重新计算data数组。否则从前面开始会覆盖掉前面的值 { data[j] = data[j-1] + data[j]; } data[0] = 1; for(j=0; j<i; j++) { printf("%d\t", data[j]); } printf("\n"); } } }
相关文章推荐
- C语言用一维数组打印杨辉三角(原:无意中想到)
- 数组-02. 打印杨辉三角(20)
- 数组-02. 打印杨辉三角(20)
- 返回一个一维整数数组中最大子数组的和2
- 对一个数组进行螺旋式打印,java语言实现
- 6.33③ 假定用两个一维数组L[1..n]和R[1..n]作为 有n个结点的二叉树的存储结构, L[i]和R[i]分别指 示结点i的左孩子和右孩子,0表示空。试写一个算法 判别结点u是否为结点v的
- 编写一个程序 把八个整数读入一个数组中 然后以相反的顺序打印它们
- 如何将硬盘上的一个位图加载到内存中并打印到屏幕上(只用SDK)
- 数组-02. 打印杨辉三角(20)
- 杨辉三角(打印一个等腰、直角三角形)
- 打印一个杨辉三角
- 如何把 php:input// 推过来的数组打印到一个文件里
- 给定一个数组,n个数,打印所有可能的r位数的组合。例如{1,2,3,4}n=4,r=2.输出{1,2}{1,3}{1,4}{2,3}{2,4}{3,4}
- 、一个n*n数组,要求用螺旋状打印出数组中的元素
- 打印一个含有重复元素数组的所有子集
- 转:定义一个数组days,将其初始化今年每月的天数,编写一段程序,将每月的天数打印出来, 分类: c语言经典题
- 编写一个程序把8个整数读入一个数组,然后以相反的顺序打印他们
- 初始化一个数组,再打印出来
- 返回多个不同类型参数的值(out)可变参数一维数组( params )把值从方法中带出(ref) 方法递归(方法自己调用自己与循坏类似注意return每次只能跳出一个方法))
- 线程同步面试题,3个线程打印一个1-100的数组,要求P1=1,P2=2,P3=3,P1=4的形式