基础练习题之函数
前言
这些题目来自与一些刷题网站,以及c primer plus,继续练习
第一题
给你一个数,让他进行巴啦啦能量,沙鲁沙鲁,小魔仙大变身,如果进行变身的数不满足条件的话,就继续让他变身。。。直到满足条件为止。
巴啦啦能量,沙鲁沙鲁,小魔仙大变身:对于一个数,把他所有位上的数字进行加和,得到新的数。
如果这个数字是个位数的话,那么他就满足条件。
给一个整数数字n(1<=n<=1e9) 输出由n经过操作满足条件的数
1分析
哎呀其实思路很简单, int 类型的大小大概可以到20亿左右
而这里的n的大小只有10亿 只需使用int类型的整型即可
那它要一个整数的各位之和,当然如果大家从来没有做过这类题目可能要斟酌一下
但是我们一眼就看出来了 使用while循环 判断条件即为该数
限制条件就是对他除10, 循环内部对它求模可以得到它的个位数大小
一次进行就可以得到它的各位之和,然而它还可以大于10之后加一个判断这个题目就出来了
2代码实现
#include <stdio.h>
int Ifbecome(int x)
{int flag=x;while(1){int a=0;while(flag){a+=flag%10;flag/=10;}if(a<10)return a;elseflag=a;}
}int main() {int a, b;while (scanf("%d", &a) != EOF) {
printf("%d",Ifbecome(a));}return 0;
}
第二题
请统计某个给定范围[L, R]的所有整数中,数字2出现的次数
比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次
输入共1行,为两个正整数L和R,之间用一个空格隔开。
输出共1行,表示数字2出现的次数。
1分析
这些题目还是很好的,用来打基础真的挺好
很明显和上个题目是有相似之处的 我们只要分别对范围内的数比较他们的各个位 数的大小与
2相判断即可 其实会上个题目 这个题目也会做
2,代码实现
#include <stdio.h>
int Count(int x)
{int a=0;while(x){if(2==x%10)a++;x/=10;}return a;
}
int main() {int a, b;while (scanf("%d%d", &a,&b) != EOF) { int i;int j=0;for(i=a;i<=b;i++){j+=Count(i);}printf("%d",j);}return 0;
}
第三题
牛牛很喜欢发短信,他所用的通讯公司的收费方法如下:
1.每条短信收费0.1元
2.每条短息的字数不超过60字,如果超过60字,将按照0.2元的价格收费。
牛牛这个月发了 n 条短信,请问牛牛一共要缴多少短信费
第一行输入一个正整数 n ,表示发送短信的条数,
第二行输入 n 个正整数,表示牛牛发送的 n 条短信中每条短信的字数
输出牛牛这个月要缴的短信费
1分析
这个题目太简单了,简单的说一下
首先判断字数,一个if就行 然后注意得用浮点型来输出其他没什么
2代码实现
#include <stdio.h>
float Price(int x)
{if(x>60){return 0.2;}elsereturn 0.1;
}
int main() {int a, b;float c=0.0f;while (scanf("%d", &a) != EOF) {while(a){scanf("%d",&b);c+=Price(b);a--;}printf("%.1f",c);}return 0;
}
第四题
牛牛刚刚学了素数的定义:素数值指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数
牛牛想知道在 [l,r] 范围内全部素数的和
输入两个正整数 l,r 表示闭区间范围 输出 [l,r] 范围内的素数的和
1分析怎么说素数的定义都告诉我们了 我们不就是让这个区间的数一直除以非1和非本身的数
只要不被整除,那么他就是素数
当然 我们可以有优化方案
就是说,在数学中只要一直除以它的算术平方根就行了
2代码实现
#include <stdio.h>
#include<math.h>
int Iszhishu(int x)
{if(x==1)return 0;int i;for(i=2;i<=sqrt(x);i++){if(x%i==0)return 0; }return x;
}
int main() {int a, b;while (scanf("%d %d", &a, &b) != EOF) { int i;int count=0;for(i=a;i<=b;i++){count+=Iszhishu(i);}printf("%d",count);}return 0;
}
第五题
前面几个题目来自于牛客网,大家可以去那里刷题,现在来看看比较基础的
接下来看 c primer plus的题目
设计一个函数min(x,y),返回两个double类型值的较小值
基础但是,多练
直接代码实现吧
#include<stdio.h>
double Min(double a,double b)
{
return a>b?b:a;}
int main()
{
double a,b;
scanf("%lf %lf",&a,&b);
printf("%.2lf",Min(a,b));
return 0;
}
第六题
设计一个函数chline(ch,i,j)打印指定的字符i列j行
1分析这个题目很基础,没办法,题目是这样的,如果不会,建议你多多看书
2代码实现
#include<stdio.h>
void chline(char ch, int a, int b)
{int i, j;for (i = 0; i < a; i++){for (j = 0; j < b; j++){printf("%c", ch);}printf("\n");}
}
int main()
{while (1){char ch;int ch0;int a, b;printf("输入要打印的字符\n");scanf("%c", &ch);printf("输入要打印的行列\n");scanf("%d%d", &a, &b);chline(ch, a, b);while ((ch0 = getchar()) && ch0 != '\n');}return 0;
}
3细节之处在于我们的万能清除缓存区最后一行的while中
通过这个函数可以把所有的"\n"清除防止被scanf接收到
虽然简单但是细节
我们发现这本书上的代码实践性更高
第七题
计算调和平均数先求两数的倒数,再求两个倒数的平均值,最后就算结果的倒数
直接代码实现
double Tiaohe(double x, double y)
{//return 1/((1/x+1/y)/2);这个结果没有化简return 2 / (1 / x + 1 / y);//化简后代码其实更高效
}
int main()
{double a, b;printf("请输入两个数\n");scanf("%lf %lf", &a, &b);double c=Tiaohe(a, b);printf("%.2lf", c);return 0;
}
值得注意的是,该调和平均数的算式可以化简,不要死算哦
第八题
编写一个函数,从标准输入中读取字符,直至遇到文件结尾程序得报告每个字符是否为字母
如果是还要报告字母在字母表的位置
再编写一个函数, 以一个字符为参数如果是字母返回一个数值位否则返回-1
没什么好说的代码
int Ifzimu(char ch);
void Readchar();
int main()
{Readchar();return 0;
}
void Readchar()
{char ch;while ((scanf("%c", &ch))==1){int a=Ifzimu(ch);if (a!=-1)printf("%d ", a);}
}
int Ifzimu(char ch)
{if (ch >= 'A' && ch <= 'Z'){return (int)(ch - 'A' + 1);}else if (ch >= 'a' && ch <= 'z')return (int)(ch - 'a' + 1);elsereturn -1;
}
总结
今天的题目到此为止祝大家开心
相关文章:
基础练习题之函数
前言 这些题目来自与一些刷题网站,以及c primer plus,继续练习 第一题 给你一个数,让他进行巴啦啦能量,沙鲁沙鲁,小魔仙大变身,如果进行变身的数不满足条件的话,就继续让他变身。。。直到满足条件为止。 巴啦啦能量…...
Java NIO浅析
NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题…...
数据挖掘与大数据的结合
随着大数据技术的不断发展和普及,数据挖掘在大数据环境下的应用也变得更加广泛和深入。以下将探讨大数据技术对数据挖掘的影响,以及如何利用大数据技术处理海量数据并进行有效的数据挖掘,同时分析大数据环境下的数据挖掘挑战和解决方案。 1.…...
分布式链路追踪(一)SkyWalking(2)使用
一、使用方法 1、简介 agent探针可以让我们不修改代码的情况下,对Java应用上使用到的组件进行动态监控,获取运行数据发送到OAP上进行统计和存储。agent探针在Java使用中是使用Java agent技术实现。不需要更改任何代码,Java agent会通过虚拟…...
【QT入门】VS2019+QT的开发环境配置
声明:该专栏为本人学习Qt知识点时候的笔记汇总,希望能给初学的朋友们一点帮助(加油!) 往期回顾: 【QT入门】什么是qt,发展历史,特征,应用,QtCreator-CSDN博客【QT入门】Windows平台下…...
RTP 控制协议 (RTCP) 反馈用于拥塞控制
摘要 有效的 RTP 拥塞控制算法,需要比标准 RTP 控制协议(RTCP)发送方报告(SR)和接收方报告(RR)数据包提供的关于数据包丢失、定时和显式拥塞通知 (ECN) 标记的更细粒度的反馈。 本文档描述了 RTCP 反馈消息,旨在使用 RTP 对交互式实时流量启用拥塞控制…...
基于SpringBoot SSM vue办公自动化系统
基于SpringBoot SSM vue办公自动化系统 系统功能 登录 个人中心 请假信息管理 考勤信息管理 出差信息管理 行政领导管理 代办事项管理 文档管理 公告信息管理 企业信息管理 会议室信息管理 资产设备管理 员工信息管理 开发环境和技术 开发语言:Java 使用框架: S…...
SpingBoot集成Rabbitmq及Docker部署
文章目录 介绍RabbitMQ的特点Rabbitmq术语消息发布接收流程 Docker部署管理界面说明Overview: 这个页面显示了RabbitMQ服务器的一般信息,例如集群节点的名字、状态、运行时间等。Connections: 在这里,可以查看、管理和关闭当前所有的TCP连接。Channels: …...
子组件自定义事件$emit实现新页面弹窗关闭之后父界面刷新
文章目录 需求弹窗关闭之后父界面刷新展示最新数据 实现方案AVUE 大文本默认展开slotVUE 自定义事件实现 父界面刷新那么如何用呢? 思路核心代码1. 事件定义2. 帕斯卡命名组件且在父组件中引入以及注册3. 子组件被引用与父事件监听4.父组件回调函数 5.按钮弹窗事件 需求 弹窗…...
【框架】跨端开发框架介绍(Windows/MacOS/Linux/Andriod/iOS/H5/小程序)
1. 跨端框架介绍 跨端框架 基本信息 说明 移动端 (性能:uniapp < ReactNative < Flutter) uniapp 注:weex已经嵌入uniapp 适用范围:Andriod、iOS、H5、国产小程序、快应用 引擎: 所属公司&#x…...
亚马逊云科技 Lambda 运行selenium
有些定时任务需要使用自动化测试的工具,如果使用亚马逊云科技 Lambda来实现这个功能的话,那么就需要图形框架,而我们知道lambda其实是一个虚拟机,而且按照系统级别依赖比较困难。所以这里选择使用容器的形式进行发布。 在dockerf…...
算法——前缀和之除自身以外数组的乘积、和为K的子数组、和可被K整除的子数组、连续数组、矩阵区域和
这几道题对于我们前面讲过的一维、二维前缀和进行了运用,包含了面对特殊情况的反操作 目录 4.除自身以外数组的乘积 4.1解析 4.2题解 5.和为K的子数组 5.1解析 5.2题解 6.和可被K整除的子数组 6.1解析 6.2题解 7.连续数组 7.1题解 7.2题解 8.矩阵区域和 8.1解析 …...
Text-to-SQL 工具Vanna + MySQL本地部署 | 数据库对话机器人
今天我们来重点研究与实测一个开源的Text2SQL优化框架 – Vanna 1. Vanna 简介【Text-to-SQL 工具】 Vanna 是一个基于 MIT 许可的开源 Python RAG(检索增强生成)框架,用于 SQL 生成和相关功能。它允许用户在数据上训练一个 RAG “模型”&a…...
linux最佳入门(笔记)
1、内核的主要功能 2、常用命令 3、通配符:这个在一些启动文件中很常见 4、输入/输出重定向 意思就是将结果输出到别的地方,例如:ls标准会输出文件,默认是输出到屏幕,但是用>dir后,是将结果输出到dir文…...
加速 PyTorch 模型预测常见方法梳理
目录 1. 使用 GPU 加速 2. 批量推理 3. 使用半精度浮点数 (FP16) 4. 禁用梯度计算 5. 模型简化与量化 6. 使用 TorchScript 7. 模型并行和数据并行 结论 在使用 PyTorch 进行模型预测时,可以通过多种方法来加快推理速度。以下是一些加速模型预测的常用方法&…...
【STM32定时器 TIM小总结】
STM32 TIM详解 TIM介绍定时器类型基本定时器通用定时器高级定时器常用名词时序图预分频时序计数器时序图 定时器中断配置图定时器定时 代码调试 TIM介绍 定时器(Timer)是微控制器中的一个重要模块,用于生成定时和延时信号,以及处…...
RISC-V 编译环境搭建:riscv-gnu-toolchain 和 riscv-tools
RISC-V 编译环境搭建:riscv-gnu-toolchain 和 riscv-tools 编译环境搭建以及说明 操作系统:什么系统都可以 虚拟机:VMmare Workstation Pro 17.50.x (版本不限) 编译环境:Ubuntu 18.04.5 CPU:i7-8750h(虚拟机分配4核…...
一文速通ESP32(基于MicroPython)——含示例代码
ESP32 简介 ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片,支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa 32 位 LX7 双核处理器,主频高达 240 MHz,内置 512 KB SRAM (TCM),具有 45 个可编程 GPIO 管…...
记录一次业务遇到的sql问题
刚开始工作 业务能力比较薄弱 记录一下这几天遇见的一个业务问题 场景 先简单说一下场景,有一批客户(一张表),可以根据这个客户匹配出很多明细数据(另一张表),现在需要删除明细,一个…...
代码分支管理
代码分支管理规范 一、分支管理要求 分支管理 • 将代码提交到适当的分支,遵循分支管理策略。 • 随时可以切换到线上稳定版本代码,确保可以快速回滚到稳定版本。 • 同时进行多个版本的开发工作,确保分支清晰,避免混淆。提交记录的可读性 • 提交描述准确,具有可检索性,…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
