c刷题(二)
目录
加减混合运算
计算n的k次方
计算非负整数各位之和
字符串逆序
双指针
递归
矩阵计算
矩阵转置
加减混合运算
题目:计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果。
一般情况我们可以写个循环然后在用条件判断语句对两种情况进行判断,但这里有个更优质的办法,设置一个开关变量在正数和负数进行切换即可。
int flag = 1;double sum = 0;for (int i = 1; i < 100; i++){sum += flag* (1.0 / i);//注意小数flag = -flag;}printf("%lf", sum);
在计算分数时,除数和被除数至少有一个是小数,否则会被当成整数运算
计算n的k次方
三种情况(递归)
- n < 0, 1.0 / Pow(n, -k)(利用正向递归后变为倒数)
- n > 0, n* Pow(n,k-1)
- n = 0, 1
double Pow(int n, int k)
{if (k < 0){return 1.0 / n * Pow(n, -k);}else if (k == 0){return 1;}else return n * Pow(n, k - 1);
}
int main()
{int n = 0;int k = 0;scanf("%d %d", &n, &k);double ret = Pow(n, k);printf("%lf\n", ret);return 0;
}
计算非负整数各位之和
用递归从后往前依次拆分,直到只有一位数。
int DigitSum(unsigned int n)
{if (n < 10)return n;elsereturn DigitSum(n / 10) + n % 10;
}
int main()
{unsigned int num = 0;scanf("%u", &num);int sum = DigitSum(num);printf("%d\n", sum);return 0;
}
字符串逆序
给定一个字符假设abcdef,逆置成fedcba。
双指针
设置首尾指针,交换后往中间靠拢。
//下标
void reverse_string(char* str)
{int len = strlen(str);int left = 0;int right = len - 1;while (left<right){char tmp = *(str + left);*(str + left) = *(str + right);*(str + right) = tmp;left++;right--;}
}
//指针
void reverse_string(char* str)
{int len = strlen(str);char* left = str;char* right = str + len - 1;while (left<right){char tmp = *left;*left = *right;*right = tmp;left++;right--;}
}
递归
递归可能不容易想到,因为这是从两头递归到中间,结束条件即只剩一个数或没有数可以交换。递归怎么做到两头并进呢?这就要用到我们的\0了,当左边的数变为右边时,先不急着将左边的数换到右边,而是在右边位置补上一个\0,然后指针+1,形成递归,这样交换的时候就不用考虑\0后已交换的内容,实现正确逆置。

上图是递归的具体过程,从图可知,数组长度从手动替换\0开始计算(如果不满足条件就将\0替换成数字)。判断条件为数组长度大于1满足递归条件,但这是偶数的情况,如果是奇数,长度就是4,递归一次后变为2,此后不满足递归条件,所以正确判断条件应该是数组长度大于2
void reverse_string(char* str)
{int len = strlen(str);char* tmp = *str;*str = *(str + len - 1);*(str + len - 1) = '\0';if (*str > 2){reverse_string(str + 1);}*(str + len - 1) = 'tmp';
}
矩阵计算


矩阵打印用二维矩阵,在里层输入矩阵的值,判断大于0的数进行累加。
int n = 0;int m = 0;scanf("%d %d", &n, &m);int i = 0;int k = 0;int sum = 0;for (i = 0; i < n; i++){int j = 0;for (j = 0; j < m; j++){scanf("%d", &k);if (k >= 0)sum += k;}}printf("%d\n", sum);
矩阵转置
注意转置要先将值存放到二维数组里,然后从原先按行打印变为按列打印即可。
int n = 0;int m = 0;scanf("%d %d", &n, &m);//int arr[n][m];//c99int arr[10][10];int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &arr[i][j]);}}for (j = 0; j < m; j++){for (i = 0; i < n; i++){printf("%d ", arr[i][j]);}printf("\n");}
如果在一些刷题网站上,我们可以直接使用变长数组初始化数组,如果不使用变长数组,可以直接设置数组大小为题目规定的最大长度即可。
相关文章:
c刷题(二)
目录 加减混合运算 计算n的k次方 计算非负整数各位之和 字符串逆序 双指针 递归 矩阵计算 矩阵转置 加减混合运算 题目:计算1 / 1 - 1 / 2 1 / 3 - 1 / 4 1 / 5 …… 1 / 99 - 1 / 100 的值,打印出结果。 一般情况我们可以写个循环然后在用条…...
【leetcode】15. 三数之和(medium)
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 这题真…...
【css】属性选择器
有些场景中需要在相同元素中获取具有特定属性的元素,比如同为input,type属性有text、button,可以通过属性选择器设置text和button的不同样式。 代码: <style> input[typetext] {width: 150px;display: block;margin-bottom…...
Redis_概述
1.redis概述 1.1 简介 截止到2021年12月 数据库排名https://db-engines.com/en/ranking redis(Remote Dictionary Server) 一个开源的key-value存储系统它支持存储的Value类型:包括String(字符串),list(链表),set(集合),zset(sorted set 有序集合),hash(哈希类型…...
【从零学习python 】16. Python字符串的format方法(一)
文章目录 字符串的format方法1. 概念:2. 字段名2.1 简单字段名2.1.1 省略字段名2.1.2 数字字段名2.1.3 变量字段名2.1.4 简单字段名的混合使用2.1.5 使用元组和字典传参 进阶案例 字符串的format方法 1. 概念: str.format() 方法通过字符串中的大括号{}来识别替换字段 replac…...
python re 模块 正则表达式
一、正则表达式基本符号 ^ 表示匹配字符串的开始位置 (例外 用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)$ 表示匹配字符串的结束位置* 表示匹配 零次到多次(记忆方法:符号是星星,天上的星星可以是无数个也可以看不到&#x…...
c#设计模式-创建型模式 之 单例模式
目录 前言: 优点: 缺点: 饿汉式(静态变量方式) 懒汉式(线程不安全) 懒汉式(双重检查锁定) 推荐方式Lazy 总结: 前言: 这种模式涉及到一个单一的类&a…...
K-01BFS(2023河南萌新联赛第(五)场:郑州轻工业大学)
链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 思路: 直接枚举这个图中的拐点 这个拐点是经过左右平移到上下平移或者上下平移到左右平移 假设这个点事左到右后然后再从下到上 左到右就相当于走了个最长上升子序列࿰…...
CSP复习每日一题(四)
树的重心 给定一颗树,树中包含 n n n 个结点(编号 1 ∼ n 1∼n 1∼n)和 n − 1 n−1 n−1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义: 重心是指树中的一…...
dubbo之整合SpringBoot
目录 zookeeper安装 1.拉取ZooKeeper镜像 2.新建文件夹 3.挂载本地文件夹并启动服务 4.查看容器 5.进入容器(zookeeper) Dubbo Admin安装 1.下载dubbo-admin 2.zip包解压 3.修改配置文件 4.打包项目 5.启动jar 6.访问 构建项目 api模块 1.创建…...
UE 5 GAS 在项目中处理AttributeSet相关
这一篇文章是个人的实战经验记录,如果对基础性的内容不了解的,可以看我前面一篇文章对基础的概念以及内容的讲解。 设置AttributeSet 使用GAS之前,首先需要设置参数集AS,这个是用于同步的一些参数,至于如何设置GAS&a…...
JDBC数据库连接
目录 引言 一,基本概念 二,常用操作步骤 三,连接操作 引言 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种 关系数据库提供统一访问,它由一组用Java语言编写的类和接口…...
gitee分支合并
合并dev分支到master(合并到主分支) git checkout master git merge dev //这里的dev表示你的分支名称 git push //推送到远程仓库 效果如下图 不报错就表示推送成功了,希望能帮助各位小伙伴...
Python小白入门:文件、异常处理和json格式存储数据
这里写自定义目录标题 所用资料 一、从文件中读取数据1.1 读取整个文件1.2 文件路径1.3 逐行读取1.4 创建一个包含文件各行内容的列表1.5 使用文件的内容1.6 包含一百万位的大型文件1.7 圆周率值中包含你的生日吗练习题 二、写入文件2.1 写入空文件2.2 写入多行2.3 附加到文件练…...
16bit、8 通道、500kSPS、 SAR 型 ADC——MS5188N
MS5188N 是 8 通道、 16bit 、电荷再分配逐次逼近型模数 转换器,采用单电源供电。 MS5188N 拥有多通道、低功耗数据采集系统所需的所有 组成部分,包括:无失码的真 16 位 SAR ADC ;用于将输入配 置为单端输入࿰…...
Chapter 12: Regular expressions | Python for Everybody 讲义笔记_En
文章目录 Python for Everybody课程简介Regular ExpressionsRegular ExpressionsCharacter matching in regular expressionsExtracting data using regular expressionsCombining searching and extractingEscape characterSummaryBonus section for Unix / Linux usersDebugg…...
Android javaMail mergeDebugJavaResource FAILED解决
Java mail 引入这两个jar之后 implementation com.sun.mail:android-mail:1.6.7implementation com.sun.mail:android-activation:1.6.7build直接报错 > Task :app:mergeDebugJavaResource FAILED Execution failed for task :app:mergeDebugJavaResource. > A failure o…...
【ArcGIS Pro二次开发】(57):地图系列
在ArcGIS Pro中,有一个地图系列,可以在一个布局中导出多个地图。 在SDK中为ArcGIS.Desktop.layout.MapSeries类和映射系列导出选项,可以以支持多页导出。 MapSeries类提供了一个静态CreateSpatialMapSeries方法,该方法使用指定的…...
秋招打卡015(20230811)
文章目录 前言一、今天学习了什么?二、动态规划之股票问题1、总结2、题目 三、SQL总结 前言 提示:这里为每天自己的学习内容心情总结; Learn By Doing,Now or Never,Writing is organized thinking. 提示:…...
如何使用Word转PDF转换器在线工具?在线Word转PDF使用方法
Word转PDF转换器在线,是一种方便快捷的工具,可帮助您在不需要下载任何软件的情况下完成此任务。无论您是需要在工作中共享文档,还是将文件以PDF格式保存以确保格式不变,都可以依靠这款在线工具轻松完成转换。那么如何使用Word转PD…...
大型语言模型如何革新自动化科学发现
1. 大型语言模型与自动化科学发现的新范式科学发现本质上是一个持续探索和试错的过程,传统科研模式中,人类科学家需要投入大量时间和精力才能推动知识边界向前迈进一小步。从半导体制造工艺的微米级到纳米级演进,到光伏电池转换效率从个位数百…...
从‘人工调参’到‘AI自优化’:储能EMS的算法演进与国产化实践(以RK3588平台为例)
从‘人工调参’到‘AI自优化’:储能EMS的算法演进与国产化实践(以RK3588平台为例) 在新能源革命的浪潮中,储能系统正经历着从"被动响应"到"主动决策"的智能化跃迁。作为储能系统的神经中枢,能量管…...
Viewer.js:现代Web应用中图像交互体验的架构级解决方案
Viewer.js:现代Web应用中图像交互体验的架构级解决方案 【免费下载链接】viewerjs JavaScript image viewer. 项目地址: https://gitcode.com/gh_mirrors/vi/viewerjs 在当今富媒体Web应用快速发展的技术背景下,图像查看器已从简单的图片展示工具…...
nli-MiniLM2-L6-H768实战案例:客服对话一致性校验系统搭建
nli-MiniLM2-L6-H768实战案例:客服对话一致性校验系统搭建 1. 项目背景与价值 在客服服务场景中,经常面临一个关键挑战:如何确保客服人员的回答与客户问题保持一致?传统人工抽检方式效率低下且覆盖面有限。nli-MiniLM2-L6-H768模…...
NexusRAG:混合检索增强生成系统实战解析与部署指南
1. 项目概述:一个面向复杂文档的智能问答系统如果你正在寻找一个能真正“读懂”你公司年报、技术白皮书或产品手册,并能像专家一样回答其中问题的工具,那么NexusRAG可能就是你折腾半天后,最终会停下来的那个答案。这不是又一个简单…...
无需Root的安卓设备终极清理指南:Universal Android Debloater让旧机焕然一新
无需Root的安卓设备终极清理指南:Universal Android Debloater让旧机焕然一新 【免费下载链接】universal-android-debloater Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices. Improve your privacy, the security and batte…...
ZYNQ硬件健康监控实战:用XADC和FreeRTOS打造系统状态看门狗
ZYNQ硬件健康监控实战:用XADC和FreeRTOS打造系统状态看门狗 在工业自动化和边缘计算领域,嵌入式系统的可靠性直接关系到生产安全和设备寿命。想象一下,一台24小时运行的工业控制器突然因为芯片过热而宕机,或者由于电源波动导致数据…...
终极指南:如何用MyTV-Android原生技术让老旧电视焕发新生
终极指南:如何用MyTV-Android原生技术让老旧电视焕发新生 【免费下载链接】mytv-android 使用Android原生开发的视频播放软件 项目地址: https://gitcode.com/gh_mirrors/my/mytv-android 还在为家中老旧Android电视无法流畅观看直播而烦恼吗?面对…...
m3u8下载神器:5分钟掌握直播视频永久保存的终极方案
m3u8下载神器:5分钟掌握直播视频永久保存的终极方案 【免费下载链接】m3u8-downloader 一个M3U8 视频下载(M3U8 downloader)工具。跨平台: 提供windows、linux、mac三大平台可执行文件,方便直接使用。 项目地址: https://gitcode.com/gh_mirrors/m3u8d/m3u8-down…...
STM32CubeMX + Keil 实战:手把手教你用SPI轮询读取W25Q128的制造商和设备ID(附完整代码)
STM32CubeMX Keil实战:从零开始用SPI读取W25Q128芯片ID 第一次接触SPI通信时,看着开发板上密密麻麻的引脚和陌生的术语,我完全不知道从何入手。直到导师递给我一块W25Q128闪存模块说:"试试用SPI读出它的身份证号码"&am…...
