【蓝桥杯】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…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
