【C语言蓝桥杯每日一题】——数字三角形

news/2024/10/31 3:17:07/

【C语言蓝桥杯每日一题】—— 数字三角形😎

  • 前言🙌
    • 数字三角形🙌
  • 总结撒花💞

追梦之旅,你我同行

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
在这里插入图片描述

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C语言蓝桥杯每日一题】—— 数字三角形~ 都是精华内容,可不要错过哟!!!😍😍😍

数字三角形🙌

题目描述
上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。

在这里插入图片描述
在这里插入图片描述

解题思路分析: 😍

  • 首先认真读题,然后分析,找出规律
  • 因为一般线上平台是支持变长数组的,所以这里我创建了一个变长二维数组 arr(就是【】里面是变量,可以根据输入的n值变化而变化的数组。
  • 首先先利用两层循环进行三角形数值的存储
  • 在利用两层循环进行三角形的遍历,其实就是对二维数组的遍历。
  • 然后看图分析,我们可以发现到,从第二行开始,第一个的元素上面没有左上角的值,直接加上面的值就是最大值 。
  • 最后一个元素没有正上方的值,直接加左上值即可
  • 其余情况加其左上右上的最大值
  • 利用一个三目运算符,我们封装设计一个比较两个数最大值的函数。
  • 由于题目要求,向左下走的次数与向右下走的次数相差不能超过 1。即输出第n行最中间二个的最大值。那么就要就要判断三角形有多少行了。如果n为奇数,那么最中间那个就是答案。如果是偶数行,那么最中间的两个数的最大值就是所求的答案。
#include <stdio.h>
#include <stdlib.h>
int Max(int x , int y)
{return x > y ? x : y;
}int main(int argc, char *argv[])
{int n = 0;scanf("%d",&n);int arr[n][n];int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j <= i; j++){scanf("%d",&arr[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j <= i; j++){if(i >=  1){if(j == 0)arr[i][j] += arr[i - 1][j];else if(i == j)arr[i][j] += arr[i - 1][j - 1];else{int max = Max(arr[i - 1][j - 1],arr[i - 1][j]);arr[i][j] += max;}}}}if( n % 2 == 1)printf("%d",arr[n - 1][(n - 1) / 2]);elseprintf("%d",Max(arr[n - 1][(n - 1) / 2],arr[n - 1][(n - 1) / 2 + 1]));return 0;
}

程序输出结果验证: 😊在这里插入图片描述

总结撒花💞

   本篇文章旨在分享【C语言蓝桥杯每日一题】—— 数字三角形。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘


http://www.ppmy.cn/news/32515.html

相关文章

网络安全岗位介绍——等级保护测评师

1、什么是等保? 等保测评”全称是信息安全等级保护测评。是经公安部认证的具有资质的测评机构&#xff0c;依据国家信息安全等级保护规范规定&#xff0c;受有关单位委托&#xff0c;按照有关管理规范和技术标准&#xff0c;对信息系统安全等级保护状况进行检测评估的活动。 …

日志与可视化方案:从ELK到EFK,再到ClickHouse

EFK方案 从ELK谈起 ELK是三个开源软件的缩写&#xff0c;分别表示&#xff1a;Elasticsearch&#xff0c;Logstash&#xff0c;Kibana。新增了一个FlieBeat&#xff0c;它是一个轻量级的日志收集处理工具&#xff0c;FlieBeat占用资源少&#xff0c;适用于在各个服务器上搜集…

右值和右值引用(C++11新特性)

文章目录右值VS左值右值引用VS左值引用定义move函数左值引用&&右值引用 与 函数重载模板完美转发左值引用的意义移动构造&&移动赋值默认移动构造&&赋值右值VS左值 关于什么是右值什么是左值&#xff0c;我们是这样判断的&#xff1a; 右值&#xff1…

替代notepad++,notepad--介绍及插件cmake编译

Notepad 是一个文本编辑器小软件&#xff0c;用来替代windows自带的记事本。然而Notepad软件的作者是台湾省人&#xff0c;其具有明显的gd/jd/td倾向&#xff0c;如果你不赞同他的观点&#xff0c;Notepad将会在你的源码里面插入随机字符。推荐一款国产的开源跨平台软件NDD(not…

运筹系列67:大规模TSP问题的EAX遗传算法

1. 算法介绍 EAX是edge assembly crossover 算子的缩写。本算法有Y nagata教授公布&#xff0c;目前在VLSI最大的几个案例上获得了best的成绩。另外目前MonoLisa 100K问题的最优解也是由其公布&#xff0c;若能得到更优解&#xff0c;可以获得1000美元奖励。 算法步骤如下&…

第十四届蓝桥杯三月真题刷题训练——第 13 天

目录 第 1 题&#xff1a;特殊日期 问题描述 答案提交 运行限制 代码&#xff1a; 思路&#xff1a; 第 2 题&#xff1a;重合次数 问题描述 答案提交 运行限制 代码&#xff1a; 第 3 题&#xff1a;左移右移 问题描述 输入格式 输出格式 样例输入 样例输出…

四、HikariCP 源码分析之初始化分析一

HikariDataSource 的初始化 HikariDataSource是 HikariCP 开放给用户使用连接池的主要操作类。所以,我们创建一个 HikariCP 的连接池,其实就是构造一个HikariDataSource。 两个构造函数 它有两个构造函数:

HTTP 3.0来了,UDP取代TCP成为基础协议,TCP究竟输在哪里?

TCP 是 Internet 上使用和部署最广泛的协议之一&#xff0c;多年来一直被视为网络基石&#xff0c;随着HTTP/3正式被标准化&#xff0c;QUIC协议成功“上位”&#xff0c;UDP“取代”TCP成为基础协议&#xff0c;TCP究竟“输”在哪里&#xff1f; HTTP/3 采用了谷歌多年探索的基…