零碎的算法笔记(1)

news2024/7/11 17:17:10

From算法竞赛入门经典 第2版

  • 1.判断 n 是否为完全平方数
  • 2. 比较大的数组应尽量声明在 main 函数外,否则程序可能无法运行
  • 3.开灯问题

1.判断 n 是否为完全平方数

可以先求出其平方根,然后看它是否为整数,即用一个 int 型变量 m 存储 sqrt(n)四舍五入后的整数,然后判断 m*m 是否等于 n

在这里插入图片描述可不可以这样写?
(直接判断 sqrt(n)是否为整数。)

if(sqrt(n) == floor(sqrt(n))) 
	printf("%d是完全平方数\n", n)

理论上当然没问题,但这样写不保险,因为浮点数的运算(和函数)有可能存在误差。

假设在经过大量计算后,由于误差的影响,整数 1 变成了 0.9999999999,floor 的结果会是 0 而不是 1。为了减小误差的影响,一般改成四舍五入,即 floor(x+0.5)。如果难以理解,可以想象成在数轴上把一个单位区间往左移动 0.5 个单位的距离。floor(x)等于 1 的区间为[1,2),而 floor(x+0.5)等于 1 的区间为[0.5, 1.5)

2. 比较大的数组应尽量声明在 main 函数外,否则程序可能无法运行

3.开灯问题

题目:有 n 盏灯,编号为 1~n。第 1 个人把所有灯打开,第 2 个人按下所有编号为
2 的倍数的开关(这些灯将被关掉),第 3 个人按下所有编号为 3 的倍数的开关(其中关掉
的灯将被打开,开着的灯将被关闭),依此类推。一共有 k 个人,问最后有哪些灯开着?
输入 n 和 k,输出开着的灯的编号。k≤n≤1000

在这里插入图片描述
虽然也能用for 循环把arr清零,但是用 memset 又方便又快捷。另一个技巧在输出:为了避免输出多余空格,设置了一个标志变量 first,可以表示当前要输出的变量是否为第一个。第一个变量前不应有空格,但其他变量都有。

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

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

相关文章

C++入门(二)

C入门(二)1.引用1.1引用概念1.2引用特性1.3常应用1.4使用场景1.5传值、传引用效率比较1.6引用和指针的区别2.内联函数2.1概念2.2内联函数的特性3.auto关键字(C11)3.1auto使用细则4.基于范围的for循环(C11)5…

题库——“C”

由于小雅兰的C语言程序设计考试的时间实在是越来越近了,那么,这篇博客也就产生了,这篇博客的主要内容是一些C语言程序设计的练习题,现在,就让我们一起进入C语言的世界吧。 1.函数fun的功能是:将形参n中&…

Java Agent 内存马攻防

前言 在 jdk 1.5 之后引入了 java.lang.instrument 包,该包提供了检测 java 程序的 Api,用于监控、收集性能信息、诊断问题等。通过 java.lang.instrument 实现的工具我们称之为 Java Agent ,Java Agent 能够在不影响正常编译的情况下来修改…

黑马主播单场带货千万,抖音直播市场还有哪些新机遇?

1月受春节假期影响,主播带货场次降低,抖音直播电商市场略显低迷,据新抖『直播带货风向』大盘数据显示,1月平台直播销量与去年12月相比下降39.55%,直播销售额下降也较为明显。了解更多行业带货风向,可点此处…

【C++11】可变参数模板

目录 可变参数模板 函数递归展开参数包 逗号表达式展开参数包 emplace_back 可变参数模板 其实C语言中我们就一直在使用可变参数列表。 C11 的新特性可变参数模板能够让我们创建可变参数的函数模板和类模板,相比C98和C03,类模板和函数模板中只能传入…

19《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》中文分享

《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》 本人能力有限,如果错误欢迎批评指正。 第四章:Protein Binding Leads to Biological Actions (蛋白质的结合会产生生物作用) -布朗棘轮在耦合结合的过…

独角兽大牛纯手肛出的一份多线程实战文档,莫把它丢进收藏夹吃灰

为什么用多线程? 在操作系统级别上,程序的执行都是以进程为单位,而每一个进程中通常都会有多个线程线程互不影响地并发执行,那么为什么要使用多线程呢?其实,多线程的使用为程序研发带来了巨大的便利&#…

删除重复数字的三种方法(详解)

前言:本期是关于去重数字的三种方法详解,今天你c了吗? 输入描述: 第一行,输入一个整数n,表示序列有n个整数。 第二行输入n个整数(每个整数大于等于1,小于等于1000)&…

关于模板字面量,我有点好奇它的内部结构

前言 最近翻看源码的时候,发现一些有趣的 JS 的知识点,基于日常的开发经验,我做了一些联想和对比。整个过程充满了乐趣。 于是我想,是不是可以延续这种创意带来的学习的乐趣。 带的富含创造力夜晚的 buff,确实让我拥…

一、系统编程常用api

一、文件io文件io是linux系统提供的接口,针对文件和磁盘进行操作,不带缓存机制标准io是c语言函数库里的标准io模型,在stdio.h中定义,通过缓冲区操作文件,带有缓存机制标准 IO 和文件 IO 的区别如下图所示:文…

SSD(固态) VS HDD(机械),购买指南

大多数人买电脑的时候纠结买固态硬盘(SSD)还是机械硬盘(HDD)。哪个是最佳选择呢,是固态硬盘还是机械硬盘呢?这个问题没有直接的答案,每个购买者有不同的需求, 需要根据需求做选择。这些需求像是性能、和预算…

DS18B20测量温度液晶1602显示

DS18B20温度传感器简介DS18B20是一种数字温度传感器。它输出的是数字信号,同时具有体积小,硬件资源耗费少,抗干扰能力强,精度高等特点。DS18B20温度传感器特点1、单线接口:DS18B20仅需一条线可实现与微处理器双向通信。…

泰山服务器板载 HNS3 网卡绑核无法充分利用 CPU 的解决思路

文章目录前言解决方案排查过程应用程序运行环境与方式检查是否存在 irqbalance 进程检查中断号对应的 CPU 亲和尝试其他绑核方式尝试调整队列数量:核心数量为 2:1前言 前段时间在泰山服务器上进行性能测试,预期是应用进程能够占满机器大部分 CPU。但实际上&#xf…

书城第二阶段——用户注册和登陆

目录0.0 JavaEE 项目的三层架构0.1 项目阶段二:用户注册和登陆的实现。1、先创建书城需要的数据库和表。2、编写数据库表对应的JavaBean对象。3、编写工具类 JdbcUtils3.1、导入需要的 jar 包(数据库和连接池需要):3.2、在 src 源…

钉钉一键登录第三方网站

钉钉一键登录第三方网站序钉钉开发者后台H5微应用应用代码开发登录页面login.html登录实现LoginController.javapom.xml增加一键登录效果展示序 企业内部系统已经做过了钉钉扫码登录,现在需要添加钉钉一键登录第三方网站功能,这里主要记录一键登录整个实…

物联网终端设备的工作原理和功能讲解

物联网终端设备是实现数据采集和数据传输的设备,它连接了传感网络层和传输网络层,起到了数据采集、数据处理、数据加密和传输的功能。 物联网终端设备由传感器、外部传感接口、CPU和外部通讯组成,工作原理是通过外部传感接口与传感设备连接&a…

和平精英军需精打细算天花板,330拿下一整套军需

和平精英军需精打细算天花板,330拿下一整套军需! #和平精英 #这游戏不花钱 #游戏凡星计划 军需精打细算天花板,一个月时间花 110 块获得 436 个军需币。拿个新军需的副套问题不大。要知道和平小店的暖弄大礼包, 100 左右&#…

一次在 classpath 使用通配符导致的偶发问题排查与建议

说起 Classpath,使用 Java 的同学应该都不会陌生。不过,目前的项目基本都会使用 Maven 等构建工具管理,开发过程中也会使用高度智能化的 IDE,在日常使用中直接涉及 Classpath 操作可能不多。前段时间遇到一个跟 Classpath 相关的偶…

【My Electronic Notes系列——触发器】

目录 序言: 🏆🏆人生在世,成功并非易事,他需要破茧而出的决心,他需要永不放弃的信念,他需要水滴石穿的坚持,他需要自强不息的勇气,他需要无畏无惧的凛然。要想成功&…

【栈】单调栈详情介绍及其运用

单调栈单调栈的概述(Overview)何时使用单调栈模拟单调递增栈单调栈的运用(算法练习题)模板【练习一、单调栈】739. 每日温度【练习二、单调栈哈希表】496. 下一个更大元素 I【练习三、单调栈循环数组】503. 下一个更大元素 II【练…