杨辉三角的打印

devtools/2024/9/25 17:08:02/

题目内容:

在屏幕上打印杨辉三角。

思路:

首先我们通过观察发现,每一步的打印都与行列数有关,中间的数据由这一列和上一行的前一列数据控制。所以我们可以使用二维数组进行操作:

(1)每一行的首元素都是1,第i行的第i个元素也是1:

int main()
{int arr[10][10] = { 0 };for (int i = 0; i < 10; i++){arr[i][0] = 1;for (int j = 0; j <= i;j++){if (i == j){arr[i][j] = 1;}}}for (int i = 0; i < 10; i++){for (int j = 0; j <=i; j++){printf("%d", arr[i][j]);}printf("\n");}return 0;
}

第一步就完成了。

(2)接下来要对中间的元素的值的规律观察,我们发现中间的数据由这一列和上一行的前一列数相加得出,比如3=1+2;2=1+1;...:

#include<stdio.h>int main()
{int arr[10][10] = { 0 };for (int i = 0; i < 10; i++){arr[i][0] = 1;for (int j = 0; j <= i;j++){if (i == j){arr[i][j] = 1;}if (i > 1 && j > 0){arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}}for (int i = 0; i < 10; i++){for (int j = 0; j <=i; j++){printf("%d ", arr[i][j]);}printf("\n");}return 0;
}

(3)打印空格:

for (j = 10 - i; j > 0; j--)
{printf("  ");
}

(4)最后代码如下:

#include<stdio.h>int main()
{int arr[10][10] = { 0 };int i = 0;int j = 0;for (int i = 0; i < 10; i++){for (j = 10 - i; j > 0; j--){printf("  ");}arr[i][0] = 1;for (int j = 0; j <= i;j++){if (i == j){arr[i][j] = 1;}if (i > 1 && j > 0){arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}printf("%-3d ", arr[i][j]);}printf("\n");}return 0;
}

谢谢大家!!!


http://www.ppmy.cn/devtools/38741.html

相关文章

蓝桥杯省三爆改省二,省一到底做错了什么?

到底怎么个事 这届蓝桥杯选的软件测试赛道&#xff0c;都说选择大于努力,软件测试一不卷二不难。省赛结束&#xff0c;自己就感觉稳啦&#xff0c;全部都稳啦。没想到一出结果&#xff0c;省三&#xff0c;g了。说落差&#xff0c;是真的有一点&#xff0c;就感觉和自己预期的…

【使用ChatGPT的API之前】OpenAI API提供的可用模型

文章目录 一. ChatGPT基本概念二. OpenAI API提供的可用模型1. InstructGPT2. ChatGPT3. GPT-4 三. 在OpenAI Playground中使用GPT模型-ing 在使用GPT-4和ChatGPT的API集成到Python应用程序之前&#xff0c;我们先了解ChatGPT的基本概念&#xff0c;与OpenAI API提供的可用模型…

通过QT自动生成的gitignore文件来说明用法

下面是QtCreator自动生成的gitignore原始文件&#xff0c;通过这个文件来说明gitignore的通配符的用法 其实这个文件用到的知识点只有下面几个&#xff1a; #开头的部分表示注释 *~表示忽略所有以~结尾的文件 *匹配所有的字符0次或者多次 core 表示忽略core文件和文件夹 !c…

网工路由基础——静态路由

一、静态路由的定义 静态路由是一种需要管理员手动配置的特殊路由。 二、静态路由的目的或背景 1&#xff09;当网络结构比较简单时&#xff0c;只需要配置静态路由就可以使网络正常工作&#xff1b; 2&#xff09;在复杂网络中&#xff0c;配置静态路由可以改进网络的性能&am…

win10 远程桌面无法连接,解决Win10远程桌面无法连接问题的方法

Windows 10操作系统中&#xff0c;远程桌面是一项非常实用的功能&#xff0c;它允许用户从另一台设备远程访问和控制另一台计算机。然而&#xff0c;有时候用户可能会遇到Win10远程桌面无法连接的问题。本文将探讨可能导致这个问题的原因&#xff0c;并提供相应的解决方案。 确…

如何让加快OpenHarmony编译速度?

OpenHarmony 有两种编译方式&#xff0c;一种是通过 hb 工具编译&#xff0c;一种是通过 build.sh 脚本编译。本文笔者将提升 build.sh 方式编译速度的方法整理如下&#xff1a; 因为笔者只用 build.sh 脚本编译&#xff0c;没用过 hb 工具&#xff0c;好像下面的选项也可以用于…

设计模式之拦截过滤器模式

想象一下&#xff0c;在你的Java应用里&#xff0c;每个请求就像一场冒险旅程&#xff0c;途中需要经过层层安检和特殊处理。这时候&#xff0c;拦截过滤器模式就化身为你最可靠的特工团队&#xff0c;悄无声息地为每一个请求保驾护航&#xff0c;确保它们安全、高效地到达目的…

C++每日一练——两个数组的交集

给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 输出&#xff1a;[2]示例 2&#xff1a; 输入&#xff1a;nums…