【数据结构】寻找规律:算对角线长度||杨辉三角||魔方问题(C语言实现)

目录标题

  • 三个算法
    • 1. 求矩阵对角线元素之和(C语言)
    • 2. 杨辉三角
    • 3. 幻方问题
  • 总结:都是通过寻找规律来找出构造逻辑然后用循环来实现

三个算法

1. 求矩阵对角线元素之和(C语言)

1.初始化行循环变量i和列循环遍历j,求和变量sum,初始化全部的元素为0
2.用书输入9个数
3.执行换行之后

关键点:
1.对角线的元素的【i】和【j】是相等的[左上到右下]
2.右上到坐下的坐标,相加为2,那么i+j=2——>i=2-j

# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>int main()
{//初始化变量值;int i = 0;int j = 0;int sum = 0;int a[3][3] = { 0 };//获取数组a的值;printf("请输入9个整数!!!!\n");//循环;for (i = 0; i < 3; i++){//列;for (j = 0; j < 3; j++){//提示用户;printf("a[%d][%d]=", i, j);//获取用户输入的数据;scanf("%d", &a[i][j]);}}//换行;printf("\n");//提示用户;printf("您输入的矩阵为:\n");//打印数组;for (i = 0; i < 3; i++){for (j = 0; j < 3; j++){//打印;printf("%5d", a[i][j]);}//换行;printf("\n");}//换行;printf("\n");//运算;for (i = 0; i < 3; i++){//运算;sum += a[i][i] ;sum += a[i][2-i];}//输出结果;printf("对角线之和为:%d", sum);return 0;
}

2. 杨辉三角

问题描述:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
用算法构造出来这样的三角形

规律:

  1. 第一列全为1,最后一列全为
    1)a[i]0[]=1
    2)for循环把最后一列变成1:a[i][i]=1
    3.其他元素遵循,这一行的数是上一行两数和:a[i][j]=a[i-1][j-1]+a[i-1][j]
#include <stdio.h>
void main(){int a[10][10],i,j;//第1列元素值为1 for(i=0;i<10;i++)a[i][0]=1;//对角线元素值为1for(i=0;i<10;i++)a[i][i]=1;//其它元素for(i=2;i<10;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];//输出杨辉三角for(i=0;i<10;i++){for(j=0;j<=i;j++)printf("%8d",a[i][j]);printf("\n");} 
}

3. 幻方问题

问题描述:幻方又称魔方阵,游戏规则是在一一个n*n的矩阵中填入1到n2的数字,使得每一行、每一列、每条对角线的累加和都相等。如图所示是一个3阶幻方,每一行、每一列每条对角线的累加和都等于15。
在这里插入图片描述
规律:
4. 1到2该如何挪动呢?

由1放在第一行中间开始填数,2在左边一行,2的下一个数字,在右边
可以这样设置:

  1. 左上角超出上边界,则在最下边对应的位置填入下一个数
  2. 左上角超出左边界,则在最右边对应的位置填入下一个数

在这里插入图片描述

int arr[100][100]={0};    //假设最多为100行、100列 printf("请输入1-100内的奇数:\n");   //只处理为奇数的方阵 int num;scanf("%d",&num);int i,j;i=0;j=num/2;   arr[i][j]=1;  //将第一个值存入中间位置 int iTemp,jTemp;  //用于暂存当前位置 for(int k=2;k<=num*num;k++){iTemp=i;jTemp=j;if(--i<0){  //判断当前位置是否超出上边界 i=num-1;}if(--j<0){  //判断当前位置是否超出左边界 j=num-1;}if(arr[i][j]>0){  //如果该位置已经有数,则在该位置下面添加数字 i=iTemp+1;if(i==num){i=0;}j=jTemp;;}arr[i][j]=k;}for(int m=0;m<num;m++){for(int n=0;n<num;n++){printf("%d\t",arr[m][n]);}printf("\n");}

总结:都是通过寻找规律来找出构造逻辑然后用循环来实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/69861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue的学习(5)

1.路由进阶 1.路由模块封装 路由的封装抽离 问题&#xff1a;所有的路由配置都堆在main.js中合适么&#xff1f; 目标&#xff1a;将路由模块抽离出来。 好处&#xff1a;拆分模块&#xff0c;利于维护 小结&#xff1a; 路由模块的封装抽离的好处是什么&#xff1f; 拆分模…

设备智能化无线通信,ESP32-C2物联网方案,小尺寸芯片实现大功能

在科技飞速发展的当下&#xff0c;我们的生活正被各类智能设备悄然改变&#xff0c;它们如同一位位无声的助手&#xff0c;渗透到我们生活的每一个角落&#xff0c;让生活变得更加便捷和丰富多彩。 智能插座、智能照明和简单家电设备在家居领域的应用&#xff0c;为我们的生活…

Excel大数据量导入导出

github源码 地址&#xff08;更详细&#xff09; : https://github.com/alibaba/easyexcel 文档&#xff1a;读Excel&#xff08;文档已经迁移&#xff09; B 站视频 : https://www.bilibili.com/video/BV1Ff4y1U7Qc 一、JAVA解析EXCEL工具EasyExcel Java解析、生成Excel比较…

Java基础知识总结(四十八)--TCP传输、TCP客户端、TCP服务端

**TCP传输&#xff1a;**两个端点的建立连接后会有一个传输数据的通道&#xff0c;这通道称为流&#xff0c;而且是建立在网络基础上的流&#xff0c;称之为socket流。该流中既有读取&#xff0c;也有写入。 **tcp的两个端点&#xff1a;**一个是客户端&#xff0c;一个是服务…

HCIA项目实践--RIP相关原理知识面试问题总结回答

9.4 RIP 9.4.1 补充概念 什么是邻居&#xff1f; 邻居指的是在网络拓扑结构中与某一节点&#xff08;如路由器&#xff09;直接相连的其他节点。它们之间可以直接进行通信和数据交互&#xff0c;能互相交换路由信息等&#xff0c;以实现网络中的数据转发和路径选择等功能。&am…

计算机毕业设计SpringBoot校园二手交易小程序 校园二手交易平台(websocket消息推送+云存储+双端+数据统计)(源码+文档+运行视频+讲解视频)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

Django开发入门 – 4.创建Django app

Django开发入门 – 4.创建Django app Create A Django App Under An Existing Project By JacksonML 1. 什么是Django app? Django项目面向Web应用程序&#xff0c;它会由一个或多个子模块组成&#xff0c;这些子模块称为apps。 Django apps负责执行完整Web应用程序中涉及…

八、OSG学习笔记-

前一章节&#xff1a; 七、OSG学习笔记-碰撞检测-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/145558132?spm1001.2014.3001.5501 一、了解OSG图元加载显示流程 本章节代码&#xff1a; OsgStudy/wids CuiQingCheng/OsgStudy - 码云 - 开源中国https:…

微信小程序医院挂号系统

第3章 系统设计 3.1系统体系结构 系统的体系结构非常重要&#xff0c;往往决定了系统的质量和生命周期。针对不同的系统可以采用不同的系统体系结构。本系统为微信小程序医院挂号系统&#xff0c;属于开放式的平台&#xff0c;所以在管理端体系结构中采用B/s。B/s结构抛弃了固…

嵌入式八股文面试题(二)C语言算法

相关概念请查看文章&#xff1a;C语言概念。 1. 如何实现一个简单的内存池&#xff1f; 简单实现&#xff1a; #include <stdio.h> #include <stdlib.h>//内存块 typedef struct MemoryBlock {void *data; // 内存块起始地址struct MemoryBlock *next; // 下一个内…

【嵌入式Linux应用开发基础】open函数与close函数

目录 一、open函数 1.1. 函数原型 1.2 参数说明 1.3 返回值 1.4. 示例代码 二、close函数 2.1. 函数原型 2.2. 示例代码 三、关键注意事项 3.1. 资源管理与泄漏防范 3.2. 错误处理的严谨性 3.3. 标志&#xff08;flags&#xff09;与权限&#xff08;mode&#xff…

MT6835 21位 磁编码器 SPI 平台无关通用驱动框架 STM32

MT6835 21位 磁编码器 SPI 平台无关通用驱动框架 STM32 1. 获取代码&#xff1a;2. 加入你的项目2.1 以 STM32 为例:2.2 以 ESP-IDF 为例: 3. 对接 API3.1 以 STM32 为例&#xff1a; 4. 更多函数说明5. 写入 EEPROM 示例 MT6835 Framework 纯C语言实现&#xff0c;跨平台&…

ArcGIS基础知识之ArcMap基础设置——ArcMap选项:常规选项卡设置及作用

作为一名 GIS 从业者,ArcMap 是我们日常工作中不可或缺的工具。对于初学者来说,掌握 ArcMap 的基础设置是迈向 GIS 分析与制图的第一步。今天,就让我们一起深入了解 ArcMap 选项中常规选项卡的各个设置,帮助大家更好地使用这款强大的软件。 在 ArcMap 中,常规选项卡是用户…

在fedora41中安装钉钉dingtalk_7.6.25.4122001_amd64

在Fedora-Workstation-Live-x86_64-41-1.4中安装钉钉dingtalk_7.6.25.4122001_amd64.deb 到官网下载钉钉Linux客户端com.alibabainc.dingtalk_7.6.25.4122001_amd64.deb https://page.dingtalk.com/wow/z/dingtalk/simple/ddhomedownload#/ 一、直接使用dpkg命令安装deb包报错…

设置mysql的主从复制模式

mysql设置主从复制模式似乎很容易&#xff0c;关键在于1&#xff09;主库启用二进制日志&#xff0c;2&#xff09;从库将主库设为主库。另外&#xff0c;主从复制&#xff0c;复制些什么&#xff1f;从我现在获得的还很少的经验来看&#xff0c;复制的内容有表&#xff0c;用户…

【算法学习】拓扑排序(Topological Sorting)

目录 定义 例子 拓扑排序的实现 核心思想 实现方法 1&#xff0c;Kahn算法&#xff08;基于贪心策略&#xff09; 步骤&#xff1a; 用二维数组存储图的例子 用哈希表存储图的例子 2&#xff0c;基于DFS的后序遍历法 总结 拓扑排序的应用场景 1&#xff0c;任务调度 …

AGI时代的认知重塑:人类文明的范式转移与思维革命

文章目录 引言:站在文明转型的临界点一、认知危机:当机器开始理解世界1.1 AGI的本质突破:从模式识别到世界建模1.2 人类认知的脆弱性暴露二、认知革命:重构思维的四个维度2.1 元认知升级:从直觉思维到二阶观察2.2 混合智能:人机认知回路的构建2.3 认知安全:防御机器思维…

零基础学CocosCreator·第九季-网络游戏同步策略与ESC架构

课程里的版本好像是1.9&#xff0c;目前使用版本为3.8.3 开始~ 目录 状态同步帧同步帧同步客户端帧同步服务端ECS框架概念ECS的解释ECS的特点EntityComponentSystemWorld ECS实现逻辑帧&渲染帧 ECS框架使用帧同步&ECS 状态同步 一般游戏的同步策略有两种&#xff1a;…

实现限制同一个账号最多只能在3个客户端(有电脑、手机等)登录(附关键源码)

如上图&#xff0c;我的百度网盘已登录设备列表&#xff0c;有一个手机&#xff0c;2个windows客户端。手机设备有型号、最后登录时间、IP等。windows客户端信息有最后登录时间、操作系统类型、IP地址等。这些具体是如何实现的&#xff1f;下面分别给出android APP中采集手机信…

算法基础:贪心|双指针|二分|倍增

贪心 算法思想&#xff1a; 把整个问题分解成多个步骤&#xff0c;在每个步骤都选取当前步骤的最优方案&#xff0c;直到所有步骤结束&#xff1b;每个步骤都不会影响后续步骤。 核心&#xff1a;采取局部最优&#xff0c;最终结果就全局最优。 双指针 反向扫描 同向扫描 二…