2021年度大题:灰太狼的密码

2023-12-07 18:36
文章标签 密码 2021 年度 灰太狼

本文主要是介绍2021年度大题:灰太狼的密码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分析:本题主要使用的是素数进行输出,然后难点是如何按照题目要求格式输出。

思路:

第一:我们可以先让素数存给一个一维数组,至于存多少个素数,是矩阵n*n个,控制数量用计数器count即可,将所需要足够的素数存到一维数组后,就该考虑如何让这些元素按照题目格式。

第二:易知输出格式是二维的,因此要动用二维数组,创建一个新的二维数组,想办法将一维数组的元素存到二维数组中(按照题目格式)

第三:数组最重要的特点就是下标,因此我们要利用好下标,下面以4*4矩阵为例,画图分析

以从上到下,从左到右的顺序,top和left作为初始值0,bottom和right作为边界值3

按照逆时针顺序

第一步下标:行不变列增加,即(0,0)到(3,0);

第二步下标:列不变行增加,即(3,0)到(3,3);

第三步下标:行不变列减少,即(3,3)到(0,3);

第四步下标:列不变行减少,即(0,3)到(0,1);

于是最外围的解决完后发现内圈还是矩阵,于是再次循环……

第四:将一维数组中所有的素数都存给二维数组后,就打印该二维数组

答案:

#include <stdio.h>
#include <math.h>int is_prime(int n)  // 判断是否为素数
{if (n <= 1)   //2是最小的素数,所以比2小的都不是素数{return 0;  //为假}int sqr = sqrt(n);   for (int i = 2; i <= sqr; i++)    //优化算法{if (n % i == 0)   //有其他因子{return 0;   //为假}}return 1;   //否则是素数,为真
}int main() 
{int n = 0;scanf("%d", &n);int primes[1600] = { 0 }; // 存储素数序列的一维数组int count = 0; // 计数器计算已有素数个数int num = 2; // 从2开始判断素数while (count < n * n)  // 存n*n个的素数{if (is_prime(num)) {primes[count++] = num;}num++;}int arr[40][40]; // 存储密码矩阵的二维数组int left = 0, right = n - 1, top = 0, bottom = n - 1; // 四个边界int index = 0; // 素数序列下标 while (left <= right && top <= bottom)   //判断是否还有内圈{ for (int i = top; i <= bottom; i++)    //第一步{arr[i][left] = primes[index++];}for (int i = left + 1; i <= right; i++)   //第二步{arr[right][i] = primes[index++];}for (int i = bottom - 1; i >= top; i--)    //第三步{arr[i][right] = primes[index++];}for (int i = right - 1; i > left; i--)    //第四步{arr[top][i] = primes[index++];}left++;    //初始值加1right--;   //边界值减1top++;     //初始值加1bottom--;  //边界值减1}for (int i = 0; i < n; i++)    //输出密码矩阵{for (int j = 0; j < n; j++){printf("%5d ", arr[i][j]);}printf("\n");}return 0;
}

这篇关于2021年度大题:灰太狼的密码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/466935

相关文章

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro

2021-8-14 react笔记-2 创建组件 基本用法

1、目录解析 public中的index.html为入口文件 src目录中文件很乱,先整理文件夹。 新建components 放组件 新建assets放资源   ->/images      ->/css 把乱的文件放进去  修改App.js 根组件和index.js入口文件中的引入路径 2、新建组件 在components文件夹中新建[Name].js文件 //组件名首字母大写

2021-08-14 react笔记-1 安装、环境搭建、创建项目

1、环境 1、安装nodejs 2.安装react脚手架工具 //  cnpm install -g create-react-app 全局安装 2、创建项目 create-react-app [项目名称] 3、运行项目 npm strat  //cd到项目文件夹    进入这个页面  代表运行成功  4、打包 npm run build

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

[SWPUCTF 2021 新生赛]web方向(一到六题) 解题思路,实操解析,解题软件使用,解题方法教程

题目来源 NSSCTF | 在线CTF平台因为热爱,所以长远!NSSCTF平台秉承着开放、自由、共享的精神,欢迎每一个CTFer使用。https://www.nssctf.cn/problem   [SWPUCTF 2021 新生赛]gift_F12 这个题目简单打开后是一个网页  我们一般按F12或者是右键查看源代码。接着我们点击ctrl+f后快速查找,根据题目给的格式我们搜索c

mysql导出导入数据和修改登录密码

导出表结构: mysqldump -uroot -ppassword -d dbname tablename>db.sql; 导出表数据: mysqldump -t dbname -uroot -ppassword > db.sql 导出表结构和数据(不加-d): mysqldump -uroot -ppassword dbname tablename > db.sql;

Ubuntu 环境下ssh的安装、使用以及免密码登录

以两台机器为例:     A12.12.10.11B12.12.10.13 安装: Ubuntu默认安装了ssh客户端,只需要在被登录的机器上安装ssh服务器即可: $ sudo apt-get install openssh-server     启动ssh服务器: $ sudo /etc/init.d/ssh start 查看是否启动成功: $ ps -ef |grep

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录(失败记录)

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录 这次是装实体机,一次失败的尝试。。。 名称型号CPUIntel Xeon E5-2673 V3GPURTX 3060 mobile 安装的时候不要选install third-party software for graphics and Wi-fi hardware and additional media