蓝桥杯专题-真题版含答案-【九宫幻方】【打鱼还是晒网】【阶乘尾数零的个数】【等差素数列】

news2024/11/27 15:25:56
  • 点击跳转专栏=>Unity3D特效百例
  • 点击跳转专栏=>案例项目实战源码
  • 点击跳转专栏=>游戏脚本-辅助自动化
  • 点击跳转专栏=>Android控件全解手册
  • 点击跳转专栏=>Scratch编程案例
  • 点击跳转=>软考全系列
  • 点击跳转=>蓝桥系列

👉关于作者

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,获取更多支持,交流让学习不再孤单

芝麻粒儿-空名先生

👉实践过程

需要所有整理的文档可底部卡片联系我,直接发压缩包。

😜九宫幻方

小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中,使得每一行、每一列和每一条对角线的和都是相同的。

三阶幻方又被称作九宫格,在小学奥数里有一句非常有名的口诀:“二四为肩,六八为足,左三右七,戴九履一,五居其中”,
通过这样的一句口诀就能够非常完美的构造出一个九宫格来。

4 9 2
3 5 7
8 1 6

有意思的是,所有的三阶幻方,都可以通过这样一个九宫格进行若干镜像和旋转操作之后得到。
现在小明准备将一个三阶幻方(不一定是上图中的那个)中的一些数抹掉,交给邻居家的小朋友来进行还原,
并且希望她能够判断出究竟是不是只有一个解。

而你呢,也被小明交付了同样的任务,但是不同的是,你需要写一个程序~

输入格式:
输入仅包含单组测试数据。
每组测试数据为一个3*3的矩阵,其中为0的部分表示被小明抹去的部分。
对于100%的数据,满足给出的矩阵至少能还原出一组可行的三阶幻方。

输出格式:
如果仅能还原出一组可行的三阶幻方,则将其输出,否则输出“Too Many”(不包含引号)。

样例输入
0 7 2
0 5 0
0 3 0

样例输出
6 7 2
1 5 9
8 3 4

int all[8][9] = {{4, 9, 2, 3, 5, 7, 8, 1, 6},
                 {8, 1, 6, 3, 5, 7, 4, 9, 2},//上下
                 {2, 9, 4, 7, 5, 3, 6, 1, 8},//左右
                 {8, 3, 4, 1, 5, 9, 6, 7, 2},//右旋
                 {4, 3, 8, 9, 5, 1, 2, 7, 6},//右旋:左右
                 {6, 7, 2, 1, 5, 9, 8, 3, 4},//右旋:上下
                 {6, 1, 8, 7, 5, 3, 2, 9, 4},//再右旋
                 {2, 7, 6, 9, 5, 1, 4, 3, 8}}//再右旋之右旋
;

int test(int data[9]) {
    int cnt = 0, ans = -1;
    for (int i = 0; i < 8; ++i) {
        bool ok = true;
        for (int j = 0; j < 9; ++j) {
            if (data[j] == 0)continue;
            if (data[j] != all[i][j]) {
                ok = false;
                break;
            }
        }
        if (ok) {
            cnt++;
            ans = i;
        }
    }
    if (cnt == 1) {
        return ans;
    } else {
        return -1;
    }
}

int main(int argc, const char *argv[]) {
    int data[9];
    for (int i = 0; i < 9; ++i) {
        scanf("%d", &data[i]);
    }
    int index = test(data);
    if (index == -1) {
        printf("Too Many\n");
    } else {
        printf("%d %d %d\n", all[index][0], all[index][1], all[index][2]);
        printf("%d %d %d\n", all[index][3], all[index][4], all[index][5]);
        printf("%d %d %d\n", all[index][6], all[index][7], all[index][8]);
    }
    return 0;
}

😜打鱼还是晒网

中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
*问题分析与算法设计
根据题意可以将解题过程分为三步:
1)计算从1990年1月1日开始至指定日期共有多少天;
2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;
3)根据余数判断他是在“打鱼”还是在“晒网”;
若 余数为1,2,3,则他是在“打鱼”
否则 是在“晒网”
在这三步中,关键是第一步。求从1990年1月1日至指定日期有多少天,要判断经历年份中是否有闰年,二月为29天,平年为28天。闰年的方法可以用伪语句描述如下:
如果 ((年能被4除尽 且 不能被100除尽)或 能被400除尽)
则 该年是闰年;
否则 不是闰年。
C语言中判断能否整除可以使用求余运算(即求模)

#include<stdio.h>
int days(struct date day);
struct date{
int year;
int month;
int day;
};
int main()
{
struct date today,term;
int yearday,year,day;
printf("Enter year/month/day:");
scanf("%d%d%d",&today.year,&today.month,&today.day); /*输入日期*/
term.month=12; /*设置变量的初始值:月*/
term.day=31; /*设置变量的初始值:日*/
for(yearday=0,year=1990;year<today.year;year++)
{
term.year=year;
yearday+=days(term); /*计算从1990年至指定年的前一年共有多少天*/
}
yearday+=days(today); /*加上指定年中到指定日期的天数*/
day=yearday%5; /*求余数*/
if(day>0&&day<4) printf("he was fishing at that day.\n"); /*打印结果*/
else printf("He was sleeping at that day.\n");
}
int days(struct date day)
{
static int day_tab[2][13]=
{{0,31,28,31,30,31,30,31,31,30,31,30,31,}, /*平均每月的天数*/
{0,31,29,31,30,31,30,31,31,30,31,30,31,},
};
int i,lp;
lp=day.year%4==0&&day.year%100!=0||day.year%400==0;
/*判定year为闰年还是平年,lp=0为平年,非0为闰年*/
for(i=1;i<day.month;i++) /*计算本年中自1月1日起的天数*/
day.day+=day_tab[lp][i];
return day.day;
}
*运行结果
Enter year/month/day:1991 10 25
He was fishing at day.
Enter year/month/day:1992 10 25
He was sleeping at day.
Enter year/month/day:1993 10 25
He was sleeping at day.

😜阶乘尾数零的个数

100!的尾数有多少个零?
*问题分析与算法设计
  可以设想:先求出100!的值,然后数一下末尾有多少个零。事实上,与上题一样,由于计算机所能表示的整数范围有限,这是不可能的。
   为了解决这个问题,必须首先从数学上分析在100!结果值的末尾产生零的条件。不难看出:一个整数若含有一个因子5,则必然会在求100!时产生一个零。因此问题转化为求1到100这100个整数中包含了多少个因子5。若整数N能被25整除,则N包含2个因子5;若整数N能被5整除,则N包含1个因子5。

#include<stdio.h>
int main()
{
int a,count =0;
for(a=5;a<=100;a+=5) //循环从5开始,以5的倍数为步长,考察整数
{
++count; //若为5的倍数,计数器加1
if(!(a%25)) ++count; //若为25的倍数,计数器再加1
}
printf("The number of 0 in the end of 100! is: %d.\n",count); //打e印结果
return 0; 
}
*运行结果
The number of 0 in the end of 100! is: 24.

😜等差素数列

2,3,5,7,11,13,…是素数序列。
类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为30,长度为6。

2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。
这是数论领域一项惊人的成果!

有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:

长度为10的等差素数列,其公差最小值是多少?

#include <algorithm>
#include <iostream>
#include <set>
using namespace std;
typedef long long LL;
set<int>all;

bool isPrime(LL t) {
    for (int i = 2; i < t / 2; ++i) {
        if (t % i == 0)return false;
    }
    return true;
}

int f(LL a[], int n) {
    for (int i = 0; i < n; ++i) {//枚举首项
        LL first = a[i];
        for (int delta = 1; delta < a[n - 1] - first; ++delta) {//枚举公差
            int m = first;
            for (int j = 1; j < 10; ++j) {//枚举个数
                m += delta;
                if (all.find(m) == all.end()) //m不是素数
                    break;
                if (m > a[n - 1])break;
                if (j == 9)//已经找到10项
                    return delta;
            }
        }
    }
    return -1;
}
const int N=5000;
LL a[N];
int main(int argc, const char *argv[]) {
    a[0] = 2;
    a[1] = 3;
    all.insert(2);
    all.insert(3);

    int index = 2;
    LL t = 5;
    while (index < N) {
        if (isPrime(t)) {
            a[index++] = t;
            all.insert(t);
        }
        t++;
    }
    cout<<f(a, N)<<endl;
    return 0;
}

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生

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

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

相关文章

【Java】重写compareTo()方法给对象数组排序

我们先给一个数组排序&#xff0c;我们肯定用的是Arrays.sort()方法&#xff1a; public class test2 {public static void main(String[] args) {int[] arr{3,5,4,6,9,8,1};System.out.println(Arrays.toString(arr));System.out.println("---------");Arrays.sort…

【一文详解 requests 库中 json 参数和 data 参数的用法】

在requests库当中&#xff0c;requests请求方法&#xff0c;当发送post/put/delete等带有请求体 的请求时&#xff0c;有json和data2个参数可选。 众所周知&#xff0c;http请求的请求体格式主要有以下4种&#xff1a;application/jsonapplicaiton/x-www-from-urlencoded multi…

音视频开发-ffmpeg介绍-系列二

目录 一、FFmpeg核心结构体 二、解码流程 三、FFmpeg解码实现 四、FFmpeg编码实现 五、FFmpeg转码实现 一、FFmpeg核心结构体 AVFormatContext&#xff1a;解封装功能的结构体&#xff0c;包含文件名、音视频流、时长、比特率等信息&#xff1b; AVCodecContext&#xf…

nginx代理后刷新显示404,这样解决。

项目部署之后&#xff0c;通过首页进入访问页面正常&#xff0c;F5刷新之后出现错误如下图。 怎么解决&#xff1a; 在Nginx配置里面增加 location / {root /www/wwwroot/phm/phmweb;index index.html index.htm;try_files $uri $uri/ /index.html;}

Kotlin基础(七):数据类和封闭类

前言 本文主要讲解kotlin数据类&#xff08;DataClass&#xff09;和封闭类&#xff08;SealedClasses&#xff09;&#xff0c;包括使用数据类&#xff0c;对象复制&#xff0c;数据类成员的解构&#xff0c;使用封闭类&#xff0c;以及数据类和封闭类在Android开发中的应用。…

【数据挖掘】时间序列的傅里叶变换:用numpy解释的快速卷积

一、说明 本篇告诉大家一个高级数学模型&#xff0c;即傅里叶模型的使用&#xff1b; 当今&#xff0c;傅里叶变换及其所有变体构成了我们现代世界的基础&#xff0c;为压缩、通信、图像处理等技术提供了动力。我们从根源上理解&#xff0c;从根本上应用&#xff0c;这是值得付…

微信小程序——页面跳转方法和场景用法总结

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

失物招领小程序连接人与物的奇妙纽带

hello guys!! 随着生活的节奏加快&#xff0c;人们在各个领域都有可能会遇到丢失物品或者拾到物品的情况。不论是学生、员工还是旅游爱好者&#xff0c;我们都有可能在生活的轨迹中遇到这样的情况。为了提供一个便捷的平台&#xff0c;让人们能够分享、发布和寻找丢失物品&…

再添新品|OPT(奥普特)高速高分辨率线阵相机发布!

针对大幅面且高速生产的视觉检测场景&#xff0c;OPT&#xff08;奥普特&#xff09;持续在数据传输接口技术上进行开发创新&#xff0c;推出三大系列线阵相机&#xff0c;产品阵容再升级。 本次发布的新品共12款&#xff0c;分别有万兆网、CXP及CL系列的新品&#xff0c;分辨…

JavaDemo——使用jks的https

java使用https主要就是设置下sslContext&#xff0c;sslContext初始化需要密钥管理器和信任管理器&#xff0c;密钥管理器用于管理本地证书和私钥&#xff0c;信任管理器用于验证远程服务器的证书&#xff0c;这两种管理器都需要KeyStore初始化&#xff0c;两种管理器可以按需只…

OS1_进程与线程的管理

序言 1.OS以进程、线程的方式在CPU中执行静态保存在外存(内存)中的程序&#xff0c;进程的构成与状态转化&#xff0c;特别是进程的切换&#xff1b; 2.当有多个进程处于就绪态&#xff0c;有哪些常见的挑选以执行方式&#xff1b; 3.并发执行(乱序发射)的进程&#xff0c;共享…

商品信息管理-亿发商品进销存管理系统,批发行业零售门店免费试用

众所周知&#xff0c;批发零售行业面临着商品品类繁多、品牌众多、商品信息量庞大等挑战。同时&#xff0c;商品售价波动频繁&#xff0c;还需要管理商品批次&#xff0c;避免积压过期。针对这些传统批发零售行业的管理难题&#xff0c;加快行业数字化转型成为解决之道&#xf…

远程访问不了虚拟机【bug】

远程访问不了虚拟机【bug】 bug 虚拟机访问不了他的默认网关 虚拟机IP&#xff1a;172.25.254.250 虚拟机网关IP&#xff1a;172.25.254.1 远程登录也是超时的 错误产生 我还原了一下虚拟机的网络配置选项 导致 √ 使用本地DHCPT服务将IP地址给虚拟机 相关资源 本机的I…

基于Labelstudio的UIE半监督智能标注方案(本地版)

自然语言处理信息抽取智能标注方案包括以下几种&#xff1a; 基于规则的标注方案&#xff1a;通过编写一系列规则来识别文本中的实体、关系等信息&#xff0c;并将其标注。 基于规则的标注方案是一种传统的方法&#xff0c;它需要人工编写规则来识别文本中的实体、关系等信息&a…

Redis入门(1)——Redis是啥 安装Docker的Redis Redis的基本数据类型+常用命令 SpringBoot整合Redis初步

目录 引出MySQL数据库&#xff1a;慢Redis是啥&#xff1f;问题&#xff1a;redis是单线程的&#xff0c;为什么会非常快&#xff1f; 安装Redis的docker1.搜索docker search redis2.拉取docker pull redis3.运行容器4.进入容器-->进入redis redis的基本数据类型字符串(stri…

在线招投标系统nodejs+vue

本站是一个B/S模式系统&#xff0c;采用vue框架&#xff0c;MYSQL数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得在线招投标系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出…

PHP反序列化漏洞之面向对象基础

一、PHP面向对象基础 要谈PHP反序列化&#xff0c;不得不涉及面向对象&#xff0c;因为在反序列化漏洞利用中&#xff0c;大多涉及的都是“对象”的反序列化。所以需要了解面向对象基础。 面向面向对象是一种以“对象”为中心的编程思想&#xff0c;把要解决的问题分解成各个…

WORD模板如何自定义并使用?

文章目录 0.引言1.新建WORD2.WORD另存为模板3.使用模板 0.引言 使用Word模板可以提高文档处理的一致性、效率和专业性&#xff0c;同时也方便了更新和维护。对于需要频繁创建或修改文档的组织或个人来说&#xff0c;使用Word模板是一个非常实用的工具。本文总结Word模板自定义并…

Docker数据管理和镜像创建

Docker数据管理和镜像创建 一、Docker的数据管理1、数据卷2、数据卷容器3、端口映射4、容器互联&#xff08;使用centos镜像&#xff09; 二、Docker 镜像的创建1、基于现有镜像创建2、基于本地模板创建3、基于Dockerfile创建3.1 联合文件系统&#xff08;UnionFS&#xff09;3…

Docker 的前世今生

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…