失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 7-4 使用递归输出杨辉三角形 (18 分)输出杨辉三角形 用户输入一个正整数n 输出n

7-4 使用递归输出杨辉三角形 (18 分)输出杨辉三角形 用户输入一个正整数n 输出n

时间:2024-03-13 01:09:11

相关推荐

7-4 使用递归输出杨辉三角形 (18 分)输出杨辉三角形 用户输入一个正整数n 输出n

输入格式:

输入一个正整数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》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。