【算法笔记自学】第 3 章 入门篇(1)——入门模拟

3.1简单模拟

自己写的题解

#include <stdio.h>
#include <stdlib.h>
int main() {int N;int num=0;scanf("%d",&N);while(N!=1){if(N%2==0){N=N/2;}else{N=(3*N+1)/2;}num++;}printf("%d",num);system("pause"); // 防止运行后自动退出,需头文件stdlib.hreturn 0;
}

标答

#include <stdio.h>
#include <stdlib.h>
int main() {int n,step=0;scanf("%d",&n);while(n!=1){if(n%2==0)n=n/2;else n=(3*n+1)/2;step++;}printf("%d\n",step);system("pause"); // 防止运行后自动退出,需头文件stdlib.hreturn 0;
}

3.2查找元素

自己写的题解

#include <stdio.h>
#include <stdlib.h>
int main() {int n;int f=0;int a[100000];scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a[i]);}scanf("%d",&f);int find=-1;for(int i=0;i<n;i++){if(a[i]==f){find=i+1;}}if(find!=-1)printf("%d\n",find);elseprintf("NO");system("pause"); // 防止运行后自动退出,需头文件stdlib.hreturn 0;
}

标答

#include <cstdio>
const int MAXN = 20;
int a[MAXN];
int main() {int n, x;scanf("%d", &n);for (int i = 0; i < n; i++) {scanf("%d", &a[i]);}int position = -1;              // 待查找元素的下标,-1表示找不到scanf("%d", &x);for (int i = 0; i < n; i++) {   // 遍历序列if (a[i] == x) {            // 如果当前元素就是待查找的元素position = i + 1;       // 记录下标,注意要加1break;                  // 不需要继续查找了,退出循环}}if (position == -1) {           // 如果找不到printf("NO");               // 输出NO} else {                        // 如果能找到printf("%d", position);     // 输出对应的下标}return 0;
}

3.3图形输出

自己写的题解

#include <stdio.h>
#include <stdlib.h>
int main() {int row=0;scanf("%d",&row);int col=row;for(int i=0;i<row-1;i++){printf("*");for(int j=0;j<i+1;j++){if(i==j&&j!=0){printf("*");}else if(j!=0)printf(" ");}printf("\n");}for(int i=0;i<row;i++){printf("*");}system("pause"); // 防止运行后自动退出,需头文件stdlib.hreturn 0;
}

标答1

#include <cstdio>int main() {int n;scanf("%d", &n);printf("*\n");for (int i = 0; i < n - 2; i++) {printf("*");for (int j = 1; j <= i; j++) {printf(" ");}printf("*\n");}for (int i = 0; i < n; i++) {printf("*");}return 0;
}

标答2

#include <cstdio>
#include <cstring>
const int MAXN = 100;
char s[MAXN][MAXN + 1];int main() {int n;scanf("%d", &n);memset(s, ' ', sizeof(s));for (int i = 0; i < n - 1; i++) {s[i][0] = s[i][i] = '*';s[i][i + 1] = '\0';printf("%s\n", s[i]);}for (int i = 0; i < n; i++) {printf("*");}return 0;
}

3.4日期处理

 

标答

#include <cstdio>bool isLeapYear(int year) {return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
}int main() {int year;scanf("%d", &year);printf(isLeapYear(year) ? "YES" : "NO");return 0;
}

标答

#include <cstdio>
// 每个月的天数
int dayOfMonth[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}
};
// 是否是闰年
bool isLeapYear(int year) {return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
}
// 给当前日期加1天(注意参数都用了引用&,这样对参数的修改可以同步到函数外)
void addOneDay(int &year, int &month, int &day) {day++;                    // 让day加1if (day > dayOfMonth[isLeapYear(year)][month]) {  // 如果超过当前月的天数month++;              // 让month加1day = 1;              // 重置day为1号}if (month > 12) {         // 如果月份大于12year++;               // 让year加1month = 1;            // 重置month为1月}
}int main() {int year, month, day, n;scanf("%d-%d-%d", &year, &month, &day);       // 按格式输入年月日scanf("%d", &n);                              // 输入需要增加的天数for (int i = 0; i < n; i++) {                 // 遍历n次,每次加1天addOneDay(year, month, day);}printf("%04d-%02d-%02d", year, month, day);   // 按格式输出年月日return 0;
}

3.5进制转换

自己写的题解

#include <stdio.h>
#include <stdlib.h>
int main() {int y=0;scanf("%d",&y);int z[40],num=0;do{z[num++]=y%2;y=y/2;}while(y!=0);for(int i=num-1;i>=0;i--){printf("%d",z[i]);}system("pause"); // 防止运行后自动退出,需头文件stdlib.hreturn 0;
}

公式:将十进制数y转换为Q进制数z

int z[40],num=0;do{z[num++]=y%Q;y=y/Q;}while(y!=0);

自己写的题解

#include <stdio.h>
#include <stdlib.h>
int main() {int y=0,product=1;int x=0;scanf("%d",&x);while(x!=0){y=y+(x%10)*product;x=x/10;product=product*2;}printf("%d",y);system("pause"); // 防止运行后自动退出,需头文件stdlib.hreturn 0;
}

公式:将P进制数x转换为十进制数y

int y=0,product=1;while(x!=0){y=y+(x%10)*product;x=x/10;product=product*P;}

3.6字符串处理

标答

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const int maxn=50;
int judge(char str[]){int len=strlen(str);for(int i=0;i<len/2;i++){if(str[i]!=str[len-1-i]){return 0;}}return 1;
}
int main() {char str[maxn];while(scanf("%s",str)!=EOF){int flag=judge(str);if(flag==1){printf("YES\n");}else{printf("NO\n");}}system("pause"); // 防止运行后自动退出,需头文件stdlib.hreturn 0;
}

标答

#include <cstdio>const int MAXN = 500;
const int MAXL = 11;
char str[MAXN][MAXL], num = 0;int main() {while (scanf("%s", str[num]) != EOF) {num++;}for (int i = num - 1; i >= 0; i--) {printf("%s", str[i]);if (i > 0) {printf(" ");}}return 0;
}

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

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

相关文章

Linux网络管理

一、linux网络管理 1.获取计算机的网络信息 基本语法&#xff1a; #ifconfig #ip address &#xff08;ip a&#xff09; 解析&#xff1a; ens33&#xff1a;默认网卡 lo&#xff1a;环回网卡&#xff0c;127.0.0.1作为固定ip代表本机 virbr0&#xff1a;虚拟网络接口&…

三维轮廓仪测粗糙度:光学3D表面轮廓仪功能详解

在精密制造领域&#xff0c;表面粗糙度的测量是确保产品质量的关键步骤。光学3D表面轮廓仪为这一需求提供了解决方案。 在半导体制造、3C电子、光学加工等高精度行业&#xff0c;表面粗糙度的测量精度直接影响到产品的性能和可靠性。光学3D表面轮廓仪正是为了满足这一需求而设计…

MIPI D-PHY、C-PHY VCX虚拟通道详解

在MIPI CSI-2协议中,VCX(Virtual Channel Extension)是一个重要的字段,用于扩展虚拟通道标识符(Virtual Channel Identifier, VC)的大小,以便在数据流中区分更多的逻辑数据通道。 虚拟通道说明: 1. VCX的作用 扩展VC字段:VC字段在数据标识符(Data Identifier, DI)…

以腾讯为例,手把手教你搭建产品帮助中心

一个精心设计的产品帮助中心对于提高用户满意度和体验至关重要。腾讯&#xff0c;作为全球领先的互联网企业&#xff0c;通过其多样化的产品线&#xff08;包括微信、QQ、腾讯游戏、腾讯视频等&#xff09;吸引了亿万用户。下面将以腾讯为例&#xff0c;向您展示如何搭建一个高…

《python程序语言设计》2018版第5章第51题利用turtle画18x18的格子

05.51.01version 先从第一一个格子来做 turtle.right(45) turtle.circle(18, steps4) turtle.hideturtle() turtle.done()这个代码很简单的现实出格子的样式。 现在的问题是循环的话。首先角度45度怎么处理 随着45度一次一次迭代。他是应该转4590呢还是4545呢&#xff1f;&…

《QT从基础到进阶·四十三》QPlugin插件多线程问题和只有插件dll没有头文件和lib文件时调用插件中的方法

1、插件和多线程问题&#xff1a; 创建插件对象不能放到多线程执行&#xff0c;不然报错&#xff1a;ASSERT failure in QWidget: "Widgets must be created in the GUlthread. //不能放在多线程执行 QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName))…

pandas中 groupby分组详解 1

引言 在一个使用 pandas 做数据分析的项目过程中&#xff0c;再次深刻理解了一下 pandas 中使用 groupby 进行分组的一些细节问题&#xff0c;以及对想要做的操作如何实现&#xff0c;在此记录&#xff1b; 问题 1&#xff1a;groupby 分组查看分组结果&#xff0c;以及重设分…

【C++】Google Test(gtest)单元测试

文章目录 Google Test&#xff08;gtest&#xff09;单元测试使用示例更多用法测试夹具 Google Test&#xff08;gtest&#xff09;单元测试 单元测试是一种软件测试方法&#xff0c;它旨在将应用程序的各个部分&#xff08;通常是方法或函数&#xff09;分离出来并独立测试&a…

Firewall防火墙

Linux包过滤防火墙 netfilter 称为Linux防火墙的“内核态”位于Linux内核 中的包过滤功能体系iptables “用户态”位于/sbin/iptables&#xff0c;包过滤的工作层次 主要是网络层&#xff0c;针对IP数据包体现在对包内的IP地址、端口等信息的处理上 iptables的表、链结构 规…

NodeJs的安装与环境变量配置

Node.js的环境变量配置主要涉及设置Node.js的安装路径、npm&#xff08;Node Package Manager&#xff09;的全局模块安装路径和缓存路径&#xff0c;以及可能需要的国内镜像源配置。以下是详细的配置步骤&#xff1a; 一、安装Node.js 下载Node.js安装包&#xff1a; 访问Nod…

Android(2) : 创建手机模拟器

1.进入device manager, 选择添加 2.配置选择 名称: Pixel8 Pro 大小: 6.7英寸 分辨率: 1344x2992px Density: xxhdpi 3.下载镜像 4.编辑虚拟机内存 文件如下 C:\Users\admin\AppData\Roaming\Google\AndroidStudio2024.1\studio64.exe.vmoptions 我的电脑是32G内存, …

直播预告|飞思实验室暑期公益培训7月10日正式开启,报名从速!

01 培训背景 很荣幸地向大家宣布&#xff1a;卓翼飞思实验室将于7月10日正式开启为期两个月的暑期公益培训&#xff01;本次培训为线上直播&#xff0c;由中南大学计算机学院特聘副教授&#xff0c;RflySim平台总研发负责人戴训华副教授主讲。 培训将基于“RflySim—智能无人…

编程上下文Context及其实现原理

编程上下文Context及其实现原理 author:shengfq date:2024-07-06 title:编程上下文Context及其实现原理 category:编程思想1.编程中的上下文Context是指什么? 在编程和软件工程领域&#xff0c;“上下文”&#xff08;Context&#xff09;是一个多义词&#xff0c;其含义可以…

1.Python学习笔记

一、环境配置 1.Python解释器 把程序员用编程语言编写的程序&#xff0c;翻译成计算机可以执行的机器语言 安装&#xff1a; 双击Python3.7.0-选择自定义安装【Customize installation】-勾选配置环境变量 如果没有勾选配置环境变量&#xff0c;输入python就会提示找不到命令…

Idea新增Module报错:sdk ‘1.8‘ type ‘JavaSDK‘ is not registered in ProjectJdkTable

文章目录 一&#xff0c;创建Module报错二&#xff0c;原因分析三&#xff0c;解决方案1&#xff0c;点击上图的加号&#xff0c;把JDK8添加进来即可2&#xff0c;点击左侧[Project]&#xff0c;直接设置SDK为JDK8 四&#xff0c;配置检查与验证 一&#xff0c;创建Module报错 …

创维汽车开展年中总结会:创新创造·勇开拓 智慧经营·攀高峰

2024年7月3日&#xff0c;回顾上半年的工作成果&#xff0c;总结经验教训&#xff0c;明确下半年的发展方向和重点任务&#xff0c;创维汽车于山西省晋中市榆次区山西联合创维体验中心开展年中总结会。 创维集团、创维汽车创始人黄宏生&#xff1b;开沃集团联合创始人、首席执…

分析一下多方联合计算中的数据泄露场景

假设某一天&#xff0c;某地社保局接到了教育局的求助&#xff0c; 希望提供社保表&#xff0c;和教育局自身的毕业生信息表 进行联合分析&#xff0c; 以得到2024年各学校的毕业生实力。 这时候社保局犯了难&#xff0c;两会会议里刚提过隐私保护相关的议题&#xff1a; 隐私…

2024.7.6 刷题总结

2024.7.6 **每日一题** 3101.交替子数组计数&#xff0c;这道题刚开始看到时想用双循环遍历数组以及位运算来判断是否为交替子数组&#xff0c;但是数据范围不允许&#xff0c;所以只能考虑一个循环&#xff0c;先考虑数学推导看看规律。经过数学分析发现&#xff0c;只需要枚…

【C++干货基地】C++模板深度解析:进阶技巧与高级特性掌握(按需实例化、全特化与偏特化)文末送书

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位铁汁们好啊&#xff0c;我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发&#xff0c;不知道各位的…

动态路由--RIP配置(思科cisco)

一、简介 RIP协议&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;是一种基于距离矢量的动态路由选择协议。 在RIP协议中&#xff0c;如果路由器A和网络B直接相连&#xff0c;那么路由器A到网络B的距离被定义为1跳。若从路由器A出发到达网络B需要…