[{"createTime":1735734952000,"id":1,"img":"hwy_ms_500_252.jpeg","link":"https://activity.huaweicloud.com/cps.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905","name":"华为云秒杀","status":9,"txt":"华为云38元秒杀","type":1,"updateTime":1735747411000,"userId":3},{"createTime":1736173885000,"id":2,"img":"txy_480_300.png","link":"https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=edb15096bfff75effaaa8c8bb66138bd&from=console","name":"腾讯云秒杀","status":9,"txt":"腾讯云限量秒杀","type":1,"updateTime":1736173885000,"userId":3},{"createTime":1736177492000,"id":3,"img":"aly_251_140.png","link":"https://www.aliyun.com/minisite/goods?userCode=pwp8kmv3","memo":"","name":"阿里云","status":9,"txt":"阿里云2折起","type":1,"updateTime":1736177492000,"userId":3},{"createTime":1735660800000,"id":4,"img":"vultr_560_300.png","link":"https://www.vultr.com/?ref=9603742-8H","name":"Vultr","status":9,"txt":"Vultr送$100","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":5,"img":"jdy_663_320.jpg","link":"https://3.cn/2ay1-e5t","name":"京东云","status":9,"txt":"京东云特惠专区","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":6,"img":"new_ads.png","link":"https://www.iodraw.com/ads","name":"发布广告","status":9,"txt":"发布广告","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":7,"img":"yun_910_50.png","link":"https://activity.huaweicloud.com/discount_area_v5/index.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=aXhpYW95YW5nOA===&utm_medium=cps&utm_campaign=201905","name":"底部","status":9,"txt":"高性能云服务器2折起","type":2,"updateTime":1735660800000,"userId":3}]
输入
输入一个正整数n(0 < n <= 20)。
输出
输出杨辉三角形的前n行,相邻两项之间用一个空格隔开。
输入示例
7
输出示例
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
数据范围
输入输出均为int范围的整数
先找到杨辉三角的规律:任意左右相邻两数和等于两数之下的数(图片来自网络)
题中打印案例为直角三角形而非等腰三角形,可使用2x2数组来表示,最后不需要的值不打印即可
定义2x2数组,我们分两部分来定义,一部分为1,另一部分为其他数
找出1的索引特点,[ i ][ j ],当i=j或者列数 j 为 0 时,为1,所以:
#include <stdio.h> #include <stdlib.h> int main() { int n,i,j; scanf("%d",&n);
int a[n][n]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(i==j||j==0){ a[i][j]=1; }
else{ a[i][j]=a[i-1][j]+a[i-1][j-1]; } } }
接着打印杨辉三角,直角形式,即2x2数组形式的杨辉三角特点:只有行数大于等于列数时有值
所以:
for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(j<=i){ //条件:行数>=列数 printf("%d
",a[i][j]); } } printf("\n"); //每行打印完成后换行 } return 0; }
最后每行打印完成加上换行即可
综上,代码为:
#include <stdio.h> #include <stdlib.h> int main() { int n,i,j; scanf("%d",&n);
int a[n][n]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(i==j||j==0){ a[i][j]=1; }
else{ a[i][j]=a[i-1][j]+a[i-1][j-1]; } } } for(i=0;i<n;i++){ for(j=0;j<n;j++){
if(j<=i){ printf("%d ",a[i][j]); } } printf("\n"); } return 0; }
(代码,解法不唯一,仅供参考)