假期刷题打卡--Day15

1、MT1152韩信又生气了

韩信点兵(大于10人),三个三个一排少1个人,五个五个一排又少1个人,七个七个一排还少1个人。韩信生气了,从别的队伍里调来一个人!这样不管是三个一排五个一排还是七个一排都完美了。问原本最少应该有多少人。

格式

输入格式:

输出格式:

输出整型

样例 1

输入:

输出:

104
解决思路

实质上,这个题目和前面的几个没有太大的区别,只是前面的都说超出,这个说缺少。而解决的时候也不需要太拧巴,只需要逆向思考,既然说3个一排站缺一个,那么就是有一排多出来2个,即余数为2;同理,5个一排少1个,就是有一排多出来4个,即余数为4;7个一排少1个,就是有一排多出来6个。然后就可以写代码了。

实现代码
#include<bits/stdc++.h> using namespace std;int main( )
{int x = 10;while(x++){if(x%3==2 && x%5==4 && x%7==6){cout << x;break;}}return 0;
}

2、MT1153真因子

输入正整数N,计算其所有真因子之和。自然数的真因子是严格小于该数的除数。

格式

输入格式:

输入正整数N

输出格式:

输出整型

样例 1

输入:

10

复制

输出:

8
备注

N>2

相关知识点

因子:因子是指能够整除某个整数而不产生余数的数。例如:整数A除B,得出结果是没有余数的整数,就称B是A的因子。

真因子:除了整数本身以外的所有因子。

总结来说:

整数的因子包括它本身和其他能够整除它的整数。但是真因子是指除了整数本身以外的所有因子。换句话说,真因子不包括整数本身。例如,整数12的因子包括1、2、3、4、6和12。其中,真因子是1、2、3、4和6,因为它们都能整除12,而12本身不被认为是真因子。

实现代码
#include<bits/stdc++.h> using namespace std;int main( )
{int N,sum = 0;cin >> N;for(int i=1;i<N;i++){if(N%i==0){sum+=i;}}cout << sum;return 0;
}

3、MT1155单位矩阵

输入3X3的整型矩阵A,判断是否为单位矩阵,输出YES或者NO。

格式

输入格式:

输入矩阵,空格分隔

输出格式:

输出YES或者NO

样例 1

输入:

1 0 0 0 1 0 0 0 1

输出:

YES
相关知识点
单位矩阵:(来自百度百科)

        在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,这种矩阵被称为单位矩阵。它是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1。除此以外全都为0。

        在C语言中,赋值操作是从右往左执行的。因此,可以使用这种连续赋值的方式将多个变量赋予相同的值。例如:a=b=c=0;

上述代码会先将0赋值给c,然后将c的值赋值给b,最后将b的值赋值给a,从而使得a、b和c均为0。

二维数组:

定义:二维数组是一种特殊类型的数组,它可以存储多行多列的元素。二维数组可以被看作是一个表格或网格,其中每个元素由两个索引值表示,一个用于指定行号,另一个用于指定列号。

初始化:二维数组的初始化可以按行分段赋值,也可按行连续赋值,也可以使用for语句赋值。
例如,对于数组 a[3][3]。

  • 按行分段赋值应该写作:
a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
  • 连续赋值:
a[3][3]={1,2,3,4,5,6,7,8,9};
  • 使用for语句赋值:
int a[3][3];
for(int i = 0;i < 3;i++){for(int j = 0;j < 3;j++){scanf("%d",&a[i][j]);}
}
break和continue的区别:
  • break:立即终止当前所在的循环(for、while、do-while),并跳出循环体,继续执行循环后的代码。也可以用于终止switch语句的执行。当遇到满足某个条件时,可以使用break语句来提前结束循环,无需等到循环条件不满足或循环次数达到上限。

例:

for (int i = 1; i <= 10; i++) {if (i == 5) {break;}printf("%d ", i);
}

当执行上述代码会输出:1 2 3 4。在循环执行到i == 5时,break语句被执行,循环立即终止,不再执行后续的循环体语句。

  • continue:立即跳过当前迭代中循环体内剩余的语句,直接进入下一次迭代。在执行到continue语句时,会停止当前迭代的执行,并进行下一次迭代的判断。

例如同样使用i==5这个条件

for (int i = 1; i <= 10; i++) {if (i == 5) {continue;}printf("%d ", i);
}

那么,执行上述代码会输出:1 2 3 4 6 7 8 9 10,在循环执行到i == 5时,continue语句被执行,跳过i==5这个条件,继续下面的循环。

跳出多重循环的一种方法:goto语句(但是并不建议使用,这里只是作为了解

goto 语句允许把控制无条件转移到同一函数内的被标记的语句。

注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。

C++ 中 goto 语句的语法:

goto label;
..
.
label: statement;
解决思路

 法一:直接按照单位矩阵去判断每个元素是否都满足;

法二:使用矩阵的表示方法,即采用二维数组表示,设一个flag去判断每个变量是否满足单位矩阵的要求。首先将 flag 初始化为1,假设输入的是单位矩阵。然后,在遍历矩阵的过程中,如果发现任何一个不符合单位矩阵定义的元素,就将 flag 置为0,并立即跳出循环。最后根据 flag 的值输出结果。

法三:依旧采用二维数组的方法,但是不设变量,只要判断不符合单位矩阵的条件,直接使用goto语句跳出双重循环。

实现代码

最简单粗暴的办法:

#include<bits/stdc++.h> using namespace std;int main( )
{int a1,a2,a3,a4,a5,a6,a7,a8,a9;scanf("%d %d %d %d %d %d %d %d %d",&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8,&a9);if(a1 == 1 && a2 == 0 && a3 == 0 && a4 == 0 && a5 == 1 && a6 == 0 && a7 == 0 && a8 == 0 && a9 == 1 ){cout << "YES";}else cout <<  "NO";return 0;
}

使用flag判断: 

#include <bits/stdc++.h>
using namespace std;int main() {int a[3][3], flag = 1;  // 初始化flag为1,假设是单位矩阵for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {scanf("%d", &a[i][j]);}}for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (i == j) {if (a[i][j] != 1) {  // 对角线上的元素必须为1flag = 0;break;  // 发现不符合条件的元素,直接跳出循环}} else {if (a[i][j] != 0) {  // 非对角线上的元素必须为0flag = 0;break;  // 发现不符合条件的元素,直接跳出循环}}}if (flag == 0) {break;  // 发现不符合条件的元素,直接跳出外层循环}}if (flag == 1) {cout << "YES";} else {cout << "NO";}return 0;
}

 使用goto语句跳出双重循环方法(了解):

#include<bits/stdc++.h> using namespace std;int main( )
{int a[3][3],flag=0;for(int i=0;i<3;i++){for(int j=0;j<3;j++){scanf("%d",&a[i][j]);}}for(int i=0;i<3;i++){for(int j=0;j<3;j++){if(i==j){if(a[i][j]==1){flag=1;}else{flag=0;goto cc;}     }else{if(a[i][j]==0){flag=1;}else{flag=0;goto cc;} }}}cc:if(flag==1){cout << "YES";}else{cout << "NO";}return 0;
}

4、MT1157矩阵相等

输入4X4的整型矩阵A和B,判断是否为相等,输出YES或者NO。

格式

输入格式:

输入矩阵,空格分隔。

输出格式:

输出YES或者NO

样例 1

输入:

4 0 0 0 5 0 0 0 6 1 2 3 4 5 6 7  
4 0 0 0 5 0 0 0 6 1 2 3 4 5 6 7 

输出:

YES
实现代码
#include <iostream>using namespace std;void cmp(int a[4][4], int b[4][4]) {int flag = 1; // 将flag初始值设为1,表示初始假设两个矩阵相等for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {if (a[i][j] != b[i][j]) {flag = 0; // 有至少一个元素不相等,将flag设为0break;}}if (flag == 0) {break;}}if (flag == 1) {cout << "YES" << endl;} else {cout << "NO" << endl;}
}int main() {int a[4][4], b[4][4];for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {cin >> a[i][j];}}for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {cin >> b[i][j];}}cmp(a, b);return 0;
}

在写判断语句的时候,没必要每次都去判断正确的情况,有时候反过来思考可能更有效,比如在上面的3、4题当中,判断不等(!=)的情况反而更加方便一点,这里再写一遍第4题就是给自己长长记性。

明天继续吧。

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

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

相关文章

【python】程序的流程控制

程序的流程控制 程序的描述方式程序的组织结构顺序结构选择/分支结构单分支if语法结构双分支if...else...结构多分支结构选择结构循环结构for与while程序跳转语句break和continuepass空语句程序的描述方式 自然语言:使用人类语言,直接描述程序 inputprocessoutput流程图:用…

每日一练 | 华为认证真题练习Day172

1、关于OSPF的ASBR-SUMMARY-LSA中LSA头部他、信息描述错误的是 A. LINK STATE ID表示ASBR的ROUTER ID B. ADVERTISING ROUTER表示该ABR的ROUTER ID C. ADVERTISING ROUTER字段永远不会改变 D. METRIC表示该ABR到达ASBR的OSPF开销 2、关于OSPF外部路由种类描述错误的是 A. …

神经网络进一步学习

一、代价函数 首先引入一些便于稍后讨论的新标记方法&#xff1a;假设神经网络的训练样本有m个&#xff0c;每个包含一组输入x和一组输出y&#xff0c;L表示神经网络层数&#xff0c;表示该层的神经元个数&#xff0c;将神经网络的分类定义为两种情况&#xff1a;二类分类和多类…

2024.1.26力扣每日一题——计算 K 置位下标对应元素的和

2024.1.26 题目来源我的题解方法一 位运算统计二进制数中1的个数方法二 官方的一种优化计算二进制中1的个数的方法 题目来源 力扣每日一题&#xff1b;题序&#xff1a;2859 我的题解 方法一 位运算统计二进制数中1的个数 对于每一个位置i都去计算i对应的二进制数中1的个数 …

上位机图像处理和嵌入式模块部署(极致成本下的图像处理)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 目前&#xff0c;大家都习惯了特定的图像处理方式&#xff0c;要么是windows上位机来处理&#xff0c;要么是arm soc来进行处理&#xff0c;要么是…

亚信安慧AntDB:赋能业务核心 助力数据管理

在当今数据驱动的信息时代&#xff0c;数据库面临着前所未有的挑战与机遇。随着技术的不断进步和用户需求的多样化&#xff0c;传统的数据库解决方案已经难以满足运营商核心业务的复杂需求。亚信安慧AntDB数据库&#xff0c;作为一款强大数据库产品&#xff0c;旨在帮助运营商应…

JavaScript基础之基本数据类型(值类型)详解

数据类型 数据类型是指可以在程序中存储和操作的值的类型&#xff0c;每种编程语言都有其支持的数据类型&#xff0c;不同的数据类型用来存储不同的数据&#xff0c;例如文本&#xff0c;数字等 JavaScript是一种弱类型语言&#xff0c;在定义变量时不需要提前指定变量的类型…

[SwiftUI]Text对字符串中部分字符改变颜色和字体

如图&#xff0c;需要对字符串中部分字符改变颜色和字体。 在 SwiftUI 中合并带有不同样式的文本&#xff0c;应该使用不同的 Text 实例并将它们合并起来。将实例使用 运算符合并起来&#xff0c;每个 Text 实例都保持其自己的样式设置。这种方式可以正常编译并运行&#xff0…

蓝桥杯——每日一练(简单题)

题目 有n个整数&#xff0c;使前面各数顺序向后移m个位置&#xff0c;最后m个数变成前面m个数。写一函数&#xff1a;实现以上功能&#xff0c;在主函数中输入n个数和输出调整后的n个数。 解析 一、list&#xff08;&#xff09;函数配合map&#xff08;&#xff09;函数获得…

DNS是什么?DNS在网络通信中的作用是什么?(国科云)

我们在日常工作生活中&#xff0c;大多数情况是通过域名去访问网站、发送邮件。当我们打开一个域名或者访问一个网页时&#xff0c;我们的计算机需要知道这个网站的IP地址&#xff0c;才能完成数据的收发通信。这时&#xff0c;DNS就发挥了至关重要的作用&#xff0c;它像一个巨…

跨域请求详解

跨域请求 一 同源策略 同源策略&#xff08;Same origin policy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能&#xff0c;如果缺少了同源策略&#xff0c;则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的&#xff0c;浏…

ps---1.使用置入嵌入的智能化对象命令制作拼贴画

ps—使用置入嵌入的智能化对象命令制作拼贴画 素材 步骤 打开背景图 置入嵌入对象&#xff08;置入完&#xff0c;移动到正确的位置&#xff0c;回车或双击&#xff09; 栅格化图层 重复上述步骤制作拼贴画

第二百八十八回

文章目录 1. 概念介绍2. 使用方法2.1 实现步骤2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取文件类型"相关的内容&#xff0c;本章回中将介绍如何播放视频.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 播放视频是我们常用…

BGP故障分析——邻居无法建立的原因

点赞关注&#xff0c;持续更新&#xff01;&#xff01;&#xff01; BGP邻居关系无法建立的原因 底层IGP网络不通&#xff1b;接口是否调用了ACL过滤了TCP的179端口&#xff1b;邻居的Router ID冲突&#xff1b;配置的邻居的AS号错误&#xff1b;用Loopback建立邻居时没有配…

apex如何保存多行字符串

虽然可以用换行符把很长的字符串放在一行&#xff0c;但是不便于阅读。apex没有像python中三个引号这种直接支持多行字符串的格式&#xff0c;可以用下面这种方法&#xff1a; String query SELECT Project__c, Project__r.Testing_Submitted__c, Project__r.Project_Sub_P…

go语言(二十)---- 有缓冲的channel

有缓冲的channel 举个例子 package mainimport ("fmt""time" )func main() {c : make(chan int,3) //带有缓冲的 channelfmt.Println("len(c) ",len(c),",cap(c)",cap(c))go func() {defer fmt.Println("子go程结束")for i…

视频监控方案设计:EasyCVR视频智能监管系统方案技术特点与应用

随着科技的发展&#xff0c;视频监控平台在各个领域的应用越来越广泛。然而&#xff0c;当前的视频监控平台仍存在一些问题&#xff0c;如视频质量不高、监控范围有限、智能化程度不够等。这些问题不仅影响了监控效果&#xff0c;也制约了视频监控平台的发展。 为了解决这些问…

HTML-框架标签、实体、全局属性和元信息

HTML 1.框架标签 <iframe name"b站" src"https://www.bilibili.com" width"500" height"300" frameborder"0"></iframe>iframe 标签的实际应用&#xff1a; 在网页中嵌入广告。与超链接或表单的 target 配合&a…

Google的guava缓存学习使用

导入依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>31.1-jre</version> </dependency>使用 项目中使用到了缓存&#xff0c;定义一个切面&#xff0c;拦截类或方法上存在Sy…

SQL 系列教程(六)

目录 SQL FOREIGN KEY 约束 SQL FOREIGN KEY 约束 创建表时的 FOREIGN KEY 约束 修改表时的 FOREIGN KEY 约束 撤销 FOREIGN KEY 约束 SQL CHECK 约束 SQL CHECK 约束 创建表时的 CHECK 约束 修改表的 CHECK 约束 撤销 CHECK 约束 SQL DEFAULT 约束 SQL DEFAULT 约…