输入格式: 输入一个正整数n 输出格式: 输出n行的直角三角形的杨辉三角,两个数之间用空格分隔,末尾无多余的空格。 输入样例: 在这里给出一组输入。例如: 3 输出样例: 在这里给出相应的输出。例如: 1 1 1 1 2 1
要输出杨辉三角形,先要了解杨辉三角形的性质下面是图片
从第三行开始 我们不妨把三角中的数定做is(x,y),x是行数,y是列数,列如is(5,3)值的数是6
规律是下面某一个数等于上两数之和如4=1+3;6=3+3;15=5+10;因此我们很容易想到可以利用递归函数
定义一个函数is(int,int)作用是返回在指定位置的三角数
主函数则用两层for循环把三角数依次输出即可
主要关系 is(m,n)=is(m-1,n-1)+is(m-1,n)
代码如下
#include <stdio.h>int is(int,int);//输出数字int main(){int m,n;scanf("%d",&m);for(int z=1;z<=m;z++)//分别输出行数和列数{for (n=1;n<=z;n++) {if(n<z)printf("%d ",is(z,n));elseprintf("%d",is(z,n));}printf("\n");}}int is(int m,int n)//{int s;if(n==1||n==m||m==1)//当三角的前两行和在三角直角边和斜角边都输出1s=1;else{s=is(m-1,n-1)+is(m-1,n);//这是递归函数}return s;}
运行结果如下
7-4 使用递归输出杨辉三角形 (18 分)输出杨辉三角形 用户输入一个正整数n 输出n行的直角三角形的杨辉三角。要求使用递归函数实现
如果觉得《7-4 使用递归输出杨辉三角形 (18 分)输出杨辉三角形 用户输入一个正整数n 输出n》对你有帮助,请点赞、收藏,并留下你的观点哦!