【蓝桥杯】43696.小数第n位
小数第n位
题目描述
我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。如果我们把有限小数的末尾加上无限多个0,那么有限小数和无限小数就都有了统一的形式。
本题的任务是:在上面的约定下,求整数除法小数点后的第 n 位开始的 3 个数字。
输入描述
输入一行三个整数:a,b,n,用空格分开。a是被除数,b是除数,n 是所求的小数后位置(0<a, b,n< 109)
比如,a=1,b=8,则a/b=1/8=0.125。如果n=1,输出为125;n=2,输出为250;n=3,输出为500
输出描述
输出一行 3 位数字,表示:a 除以 b,小数后第 n 位开始的 3 位数字。
输入输出样例
示例
输入
1 8 1
输出
125
一般解法(然并卵)
1,将a/b的结果保存为字符串;
2,把字符串中小数点的位置找出来,然后向后移动n位;
3,对字符串切片,把index+n : index+n+3的子字符串截取出来;
4,如果子字符串的长度不够,末尾用0补足
import os
import sys# 请在此输入您的代码
a, b, n = map(int, input().split())
# 先进行除法运算得到小数形式(字符串表示),注意Python中整数除法会得到整数结果,这里要转为浮点数除法
result = str(a / b)
# print(result)# 找到小数点的位置
dot_index = result.find('.')# 如果n大于总长度(包含小数点)则不符合要求,
if dot_index + n < len(result) and n < 1000000000:# 提取从第n位开始的3位数字sub_result = result[dot_index + n: dot_index + n + 3]# 如果不足3位数字,在末尾补0if len(sub_result) < 3:sub_result += '0' * (3 - len(sub_result))
print(sub_result)
输入输出结果略。
然后就是只通过了一个测试用例。心中挺纳闷的。
后来看了其他作者分享的内容,才知道自己想法错了。
https://blog.csdn.net/red_red_red/article/details/89843256,
https://blog.csdn.net/A_ACM/article/details/88304399
换个思路,这道题的解法是这样:
1,获得a,b,n并转换为整数。
2,目标值即为(a ÷ b)× 10n+2 % 1000 = a× 10n+2 % (b × 1000)/ b
3,然后用快速求幂
感谢@胡歌爱亦菲 ,感谢@qdu_zhaiH,虽然还是一头雾水没看怎么看懂。
代码实现:
Python 实现
# 快速幂函数,用于计算a的b次方对mod取模的结果
def q_pow(a, b, mod):res = 1while b:if b & 1:res = (res * a) % moda = (a * a) % modb >>= 1return res# 使用map函数将输入的字符串转换为整数,并分别赋值给a1, b1, n
a1, b1, n = map(int, input().split())# 计算取模的数值
mod = b1 * 1000
# 调用快速幂函数计算结果
res = q_pow(10, n + 2, mod)
# 进行临时计算
tem = (a1 % mod * res % mod) % mod
# 按照格式化要求输出结果,确保输出三位宽度,不足三位前面补0
print(f"{tem // b1:03d}")
JAVA 实现
import java.util.Scanner;public class Main {// 快速幂函数,用于计算a的b次方对mod取模的结果static long q_pow(long a, long b, long mod) {long res = 1;while (b > 0) {if ((b & 1) == 1) {res = (res * a) % mod;}a = (a * a) % mod;b >>= 1;}return res;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 获取用户输入的三个整数,分别赋值给a1, b1, nlong a1 = scanner.nextLong();long b1 = scanner.nextLong();long n = scanner.nextLong();// 计算取模的数值long mod = b1 * 1000;// 调用快速幂函数计算结果long res = q_pow(10, n + 2, mod);// 进行临时计算long tem = (a1 % mod * res % mod) % mod;// 按照格式化要求输出结果,确保输出三位宽度,不足三位前面补0System.out.printf("%03d\n", tem / b1);scanner.close();}
}
C++实现
#include <iostream>
using namespace std;// 快速幂函数,用于计算a的b次方对mod取模的结果
long long q_pow(long long a, long long b, long long mod) {long long res = 1;while (b > 0) {if (b & 1) {res = (res * a) % mod;}a = (a * a) % mod;b >>= 1;// 右移操作,相当于b /= 2;}return res;
}int main() {long long a1, b1, n;// 获取用户输入的三个整数cin >> a1;cin >> b1;cin >> n;long long mod = b1 * 1000;// 调用快速幂函数计算结果long long res = q_pow(10, n + 2, mod);long long tem = (a1 % mod * res % mod) % mod;// 按照格式化要求输出结果,确保输出三位宽度,不足三位前面补0printf("%03lld\n", tem / b1);return 0;
}
C 实现
#include <stdio.h>// 快速幂函数,用于计算a的b次方对mod取模的结果
long long q_pow(long long a, long long b, long long mod) {long long res = 1;while (b > 0) {if (b & 1) {res = (res * a) % mod;}a = (a * a) % mod;b >>= 1;// 右移操作,相当于b /= 2;}return res;
}int main() {long long a1, b1, n;// 获取用户输入的三个整数scanf("%lld", &a1);scanf("%lld", &b1);scanf("%lld", &n);long long mod = b1 * 1000;// 调用快速幂函数计算结果long long res = q_pow(10, n + 2, mod);long long tem = (a1 % mod * res % mod) % mod;// 按照格式化要求输出结果,确保输出三位宽度,不足三位前面补0printf("%03lld\n", tem / b1);return 0;
}
相关文章:
【蓝桥杯】43696.小数第n位
小数第n位 题目描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。如果我们把有限小数的末尾加上无限多个0,那么有限小数和无限小数就都有了统一的形式。 本题的任务是:在上面的约定下,求整数除法…...
进程间通信方式---消息队列(System V IPC)
进程间通信方式—消息队列(System V IPC) 文章目录 进程间通信方式---消息队列(System V IPC)消息队列1.消息队列进程间通信原理2.msgget 系统调用3.msgsnd 系统调用4.msgrcv 系统调用5.msgctl 系统调用6.函数使用案例7.实现生产者…...
windows10 安装wsl、迁移到其他盘
介绍一下在windows10 安装和迁移wsl。由于公司发了通知不能在使用docker desktop,只能另找方法使用docker了,于是想安装一个wsl,然后在装一个docker。 安装wsl ## 查看wsl 版本 wsl.exe --list --online## 安装Ubuntu-22.04 wsl.exe --inst…...
el-divide(vue3总)
分割线 使用...
python —— 常用命令行的命令
目 录 python命令行查看安装版本查看安装路径升级pip工具安装包升级包卸载安装包查看包的信息详情查询已安装的包查询可升级的包显示包所在目录及信息搜索包使用指定版本运行脚本运行常见错误 python命令行 产品研发中通常需要使用一些小工具来辅助调试功能,比如采…...
C++ 23版的最新特性
C 23 是 C 编程语言的最新标准版本,于 2023 年正式发布,带来了诸多新特性与改进,以下是一些主要内容: 1.语言特性 1.显式对象参数(Deducing this):显式对象参数(Deducing this&…...
什么是 Memory-bound stalls,以及如何优化
Memory-bound stalls 是指在计算机系统中,程序的性能受到内存访问速度的限制,导致处理器无法高效执行指令。这种情况通常发生在 CPU 需要等待数据从内存中加载时,而不是在执行计算或处理指令时。 Memory-bound stalls 的成因 访问延迟&…...
机器学习 | 非线性回归拟合数据时的离群值检测
非线性回归是一种用于模拟变量之间复杂关系的强大工具。然而,离群值的存在可能会显着扭曲结果,导致参数估计不准确和预测不可靠。因此,检测离群值对于稳健的非线性回归分析至关重要。本文深入研究了在非线性回归中识别离群值的方法和技术&…...
使用elasticsearch-head插件修改elasticsearch数据
1、先使用elasticsearch-head插件基本查询功能找到要修改的数据 2、切换到复合查询界面 url: http://es的ip地址:端口号/索引名称/文档类型(没特殊设置过就是_doc)/文档id/ 例子:http://127.0.0.1:9200/tab_inout_record/_doc/84…...
202412月最新植物大战僵尸杂交版【V3.0.1】更新内容与下载
以下是对UI优化和新内容添加的摘要: UI优化摘要: 主界面重做:对游戏的主界面进行全面的设计更新,提升用户体验。商店重做:对游戏内的商店界面进行重新设计,以改善玩家的购物体验。选卡界面增加图鉴功能&a…...
游戏渠道假量解决方案
某推广公司在推广过程中被查出“短期内点击量激增”“存在同一地址多次访问”“已注册用户重复注册”等数据作弊行为,法院判罚退还服务费200余万元,并赔偿违约金约350万元。 某公司为提升其游戏在应用商店榜单排名,委托某网络公司进行下载、注…...
Java系统对接企业微信审批项目流程
若依做的一个系统需求需要对接企业微信的人员去审核订单 回款之类,以下是详细步骤. 1.首先登入企业微信管理后台: 企业微信 2.找到应用管理 3.自建一个应用 4.这些数据都可以拿到 5.配置可信Ip 6.进入有两种方法让你去配置 ,第一种用公司的…...
基于Springboot人口老龄化社区服务与管理平台【附源码】
基于Springboot人口老龄化社区服务与管理平台 效果如下: 系统登陆页面 系统主页面 社区信息页面 社区文件页面 活动报名页面 走访任务管理页面 社区资讯页面 老人信息管理页面 研究背景 随着社会老龄化的加剧,老年人口比例逐渐增加,对老年…...
Dot Foods EDI 需求分析及对接流程
Dot Foods 是一家美国领先的食品和非食品产品的中间批发分销商,主要为食品服务、零售和分销行业的客户提供服务,是北美大型食品中间分销商之一。Dot Foods (以下简称 Dot)的业务模式是通过整合多个供应商的产品,为客户…...
代码随想录day24 | leetcode 93.复原IP地址 90.子集 90.子集II
93.复原IP地址 Java class Solution {List<String> result new ArrayList<String>();StringBuilder stringBuilder new StringBuilder();public List<String> restoreIpAddresses(String s) {backtracking(s, 0, 0);return result;}// number表示stringb…...
探索国产数字隔离器——测试与应用
国产数字隔离器已成为现代电子产品中的关键部件,以增强的性能和可靠性取代了传统的光耦合器。这些隔离器广泛应用于医疗设备、汽车电子、工业自动化和其他需要强大信号隔离的领域。准确测试这些设备是确保其质量和性能的基本步骤。 如何测试数字隔离器 测试数字隔离…...
IDEA无法打开插件市场的解决
1.版本 我的IDEA版本号为2020.1.4 大家可以从IDEA的help->about进行版本号的查看 2.解决 我们直接到jetbrains官网搜索你想要下载的插件 直接下载即可自动导入...
以腾讯混元模型为例,在管理平台上集成一个智能助手
背景 前几天,公司的同事们一起吃了个饭,餐桌上大家聊到大模型的落地场景。我个人在去年已经利用百度千帆平台写过案例,并发过博客(传送门👉:利用文心千帆打造一个属于自己的小师爷),…...
15.初识接口1 C#
这是一个用于实验接口的代码 适合初认识接口的人 【CSDN开头介绍】(文心一言AI生成) 在C#编程世界中,接口(Interface)扮演着至关重要的角色,它定义了一组方法,但不提供这些方法的实现。它要求所…...
探索 Python编程 调试案例:计算小程序中修复偶数的bug
在 学习Python 编程的过程里,会遇到各种各样的bug。而修复bug调试代码就像是一场充满挑战的侦探游戏。每一个隐藏的 bug 都是谜题,等待开发者去揭开真相,让程序可以顺利运行。今天,让我们通过一个实际案例,深入探索 Py…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
