输出平方矩阵

embedded/2024/10/11 0:27:01/

题目:

输入一个正整数n,输出一个n阶的平方矩阵。

例如:

输入:5

输出:

1 4 9 16 25 
4 9 16 25 1 
9 16 25 1 4 
16 25 1 4 9 
25 1 4 9 16 

解题思路:

本题我分别采用一维数组和二维数组来实现。

一维数组:采用一维数组输出矩阵的形式,我考虑的是一行一行的进行输出,输出一次进行一次一位数组的移动,然后再进行输出,重复这个过程。

二维数组:利用二维数组实现的过程中,我主要观察输出结果找规律实现。因为采用的是二维数组,所以我找到行标、列标与对应值的关系:a[i][j] =(i+j+1)*(i+j+1),这个规律适用于矩阵的副对角线之上的元素。在矩阵的副对角线之下,元素同样可以表示为a[i][j] = k * k的形式,但此时的k = (i+j+1)%n。

程序代码:

使用一位数组实现: 

#include <stdio.h>
//一维数组实现平方矩阵
int main(int argc, char *argv[])
{ int n, i, temp, j;printf("你想输出几行几列的平方矩阵:");scanf("%d",&n);int a[n];for(i = 0; i < n; i++){//赋值a[i] = (i+1) * (i+1);}for(j = 0; j < n; j++){//移动次数if(j > 0){temp = a[0];//取第一个元素for(i = 0; i < n - 1; i++){//移动a[i] = a[i+1];}a[n-1] = temp;}//将第一个元素移动到最后一个位置for(i = 0; i < n; i++){//输出printf("%d ",a[i]);}putchar('\n');}return 0;
} 

使用二维数组实现: 

#include <stdio.h>
//二维数组输出平方矩阵
int main(int argc, char *argv[])
{ int n, i, j, k;printf("你想输出几行几列的平方矩阵:");scanf("%d",&n);int a[n][n];for(i = 0; i < n; i++){for(j = 0; j < n; j++){k = i + j + 1;if(i + j >= n){//取余修正输出结果k %= n;}a[i][j] = k * k;printf("%d ",a[i][j]);}putchar('\n');}return 0;
} 

运行结果:

你想输出几行几列的平方矩阵:5
1 4 9 16 25 
4 9 16 25 1 
9 16 25 1 4 
16 25 1 4 9 
25 1 4 9 16 
你想输出几行几列的平方矩阵:10
1 4 9 16 25 36 49 64 81 100 
4 9 16 25 36 49 64 81 100 1 
9 16 25 36 49 64 81 100 1 4 
16 25 36 49 64 81 100 1 4 9 
25 36 49 64 81 100 1 4 9 16 
36 49 64 81 100 1 4 9 16 25 
49 64 81 100 1 4 9 16 25 36 
64 81 100 1 4 9 16 25 36 49 
81 100 1 4 9 16 25 36 49 64 
100 1 4 9 16 25 36 49 64 81 

http://www.ppmy.cn/embedded/125622.html

相关文章

抖店API接口系列(商品详情数据),Json数据格式参考

抖店API接口系列中的商品详情数据接口允许第三方应用通过编程方式访问抖音小店的商品数据。这些数据通常包括商品的基本信息、价格、库存、用户评价等&#xff0c;并且会以JSON数据格式返回。以下是一个抖店商品详情数据JSON格式的参考示例&#xff1a; { "status":…

【优选算法之BFS】No.16---多源BFS和BFS解决拓扑排序

文章目录 前言一、多源BFS示例&#xff1a;1.1 01 矩阵1.2 ⻜地的数量1.3 地图中的最⾼点1.4 地图分析 二、BFS解决拓扑排序&#xff1a;2.1 拓扑排序简介2.1.1 有向无环图(DAG图)2.1.2 AVO网&#xff1a;顶点活动图2.1.3 拓扑排序2.1.4 实现拓扑排序 2.2 BFS解决拓扑排序示例&…

AAA Mysql与redis的主从复制原理

一 &#xff1a;Mysql主从复制 重要的两个日志文件&#xff1a;bin log 和 relay log bin log&#xff1a;二进制日志&#xff08;binnary log&#xff09;以事件形式记录了对MySQL数据库执行更改的所有操作。 relay log&#xff1a;用来保存从节点I/O线程接受的bin log日志…

髓质脊髓三叉神经核文献阅读笔记

文献阅读 1.RNA-seq 对于大量RNA测序&#xff0c;收集第30天的类器官。使用FastPure细胞/组织总RNA分离试剂盒根据制造商的方案提取总RNA。采用Nanodrop 2000分光光度计测定RNA浓度和纯度。使用Agilent 2100生物分析仪和2100 RNA纳米6000检测试剂盒评估RNA样品的完整性。简单…

面试--开源框架面试题集合

Spring 谈谈自己对于 Spring IoC 的了解什么是 IoC?IoC 解决了什么问题?什么是 Spring Bean&#xff1f;将一个类声明为 Bean 的注解有哪些?Component 和 Bean 的区别是什么&#xff1f;注入 Bean 的注解有哪些&#xff1f;Autowired 和 Resource 的区别是什么&#xff1f;…

EcoVadis认证内容有哪些?EcoVadis认证申请流程?

EcoVadis认证是一个国际性的可持续发展评估平台&#xff0c;旨在帮助全球企业和供应链评鉴其在环境、社会和治理&#xff08;ESG&#xff09;方面的表现。该认证框架由法国的检验、认证和检测机构必维集团&#xff08;Bureau Veritas&#xff09;创建&#xff0c;得到了众多跨国…

【STM32单片机_(HAL库)】4-5-3【定时器TIM】【感应开关盖垃圾桶项目】项目实现

1.项目需求 以下几个事件触发时&#xff0c;垃圾桶自动开盖&#xff0c;并伴随蜂鸣器短响一声&#xff0c;同时 LED 灯闪烁一下&#xff0c;2秒后自动关盖&#xff1a; 检测到有人靠近检测到有震动按下按键 KEY1 2.硬件 STM32单片机最小系统震动传感器模块蜂鸣器模块&#…

Jensen-Shannon散度(JS散度)

Jensen-Shannon散度&#xff08;Jensen-Shannon Divergence, JS散度&#xff09;是概率分布之间的一种相似性度量。它是基于Kullback-Leibler散度&#xff08;KL散度&#xff09;的对称版本&#xff0c;并且具有一些更好的性质&#xff0c;例如它总是非负的&#xff0c;并且是有…