【算法笔记自学】第 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;虚拟网络接口&…

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

一个精心设计的产品帮助中心对于提高用户满意度和体验至关重要。腾讯&#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;以及重设分…

直播预告|飞思实验室暑期公益培训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;开沃集团联合创始人、首席执…

【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需要…

Vben:表格的表头和表格的内容对不齐,以及解决方法

文章目录 一、问题描述二、解决方法 一、问题描述 基于Vue-Vbne-admin框架进行前端开发的时候&#xff0c;调用表格useTable函数实现表格之后&#xff0c;发现表格的表头和表格的内容对不齐。如下图所示。针对这种情况&#xff0c;本文记录了解决方法。 调用的模块如下&#x…

带你一步步搭建Web自动化测试框架

测试框架的设计有两种思路&#xff0c;一种是自底向上&#xff0c;从脚本逐步演变完善成框架&#xff0c;这种适合新手了解框架的演变过程。另一种则是自顶向下&#xff0c;直接设计框架结构和选取各种问题的解决方案&#xff0c;这种适合有较多框架事件经验的人。本章和下一张…

优化LabVIEW代码以提高软件性能

优化LabVIEW代码对于提高软件性能、减少执行时间和资源消耗至关重要。以下是一些具体的策略和方法&#xff0c;可以帮助LabVIEW程序员优化代码&#xff1a; 1. 代码结构和模块化 使用子VI&#xff1a;将重复使用的代码段封装成子VI&#xff0c;提高代码的可读性和可维护性。 避…

使用Vue CLI方式创建Vue3.0应用程序

Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。新版本的 Vue CLI 的包名由原来的 vue-cli 改成了 vue/cli。 在开发大型项目时&#xff0c;需要考虑项目的组织结构、项目构建和部署等问题。如果手动完成这些配置工作&#xff0c;工作效率会非常低。为此&#xff0c;Vue.…

刷题之买股票的最佳时机(leetcode)

买股票的最佳时机 动态规划入门题。 最简单的模拟式解法&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {//也可以换一种思路&#xff0c;因为只交易一次&#xff0c;那么找出股票最便宜的时候买入&#xff0c;最贵的时候卖出&#xff…

c与c++的内存管理

给出内存四个分区名字&#xff1a;栈区、堆区、全局区&#xff08;俗话也叫静态变量区&#xff09;、代码区&#xff08;也叫代码段&#xff09;&#xff08;代码段又分很多种&#xff0c;比如常量区&#xff09; 当然也会看到别的定义如&#xff1a; 两者都正确&#xff0c;记…

职升网:中级统计师是否属于中级职称?

中级统计师确实属于中级职称。 在统计专业人员的职称体系中&#xff0c;中级统计师占据了重要的位置&#xff0c;它属于中级职称范畴。这个职称体系包括初级、中级、高级和正高级四个层次&#xff0c;每个层次都对应着不同的专业技术岗位等级。初级职称只设助理级&#xff0c;…

【大数据】—FIFA世界杯探索性分析(EDA)

引言 足球&#xff0c;作为全球最受欢迎的运动之一&#xff0c;拥有庞大的粉丝群体和深远的文化影响。自1930年首届FIFA世界杯举办以来&#xff0c;这项赛事已经成为全球体育盛事&#xff0c;吸引了数十亿观众的目光。世界杯不仅是各国足球技艺的较量&#xff0c;更是国家荣誉…