蓝桥杯 r格式(高精度*低精度)

news/2025/2/23 19:45:09/

输入样例:2 3.14
输出样例:13

思路:首先注意到本题的数字大小很大,需要用到高精度,因此应该定义string来存储数据d,为了后续计算,在存储完字符串d之后还需要先将每一位转化为数字并且找到小数点在第几位,而数据2**n由于直接算出来会超范围,所以我们采取每次将d的每一位乘2 来算即可。

详见注释

#include<bits/stdc++.h>
using namespace std;   
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); //降低输入输出流 int n;string d; cin>>n>>d;vector<int>b;  int sum=0,k=0;for(int i=d.size()-1;i>=0;i--)//注意这里是倒叙存储入 b 数组,否则后续进位不方便 {if(d[i]!='.')//判断是否是小数点 b.push_back(d[i]-'0');//把每一个字符转化为数字,方便后续乘法 ,这里如果用数组且下标不做改动的话b[k]会等于0,会对进位等过程有影响,但是我们这里用了vector是直接从后面加入数据的,所以原本小数点的位置现在存储 的就是整数部分的最后一位 else k=sum;  // 记录下小数点的位置,为了后续四舍五入 sum++;   }int u=b.size();while(n--) //由于2**n 超出数可以表示的范围,所以想到每次*2  {    int t=0;for(int i=0;i<b.size();i++){b[i]=b[i]*2+t;  //t表示进位 if(b[i]>=10){t=b[i]/10;b[i]=b[i]%10;}else t=0;}if(t)//处理最后一位的进位 b.push_back(t);}   u=b.size();int t=1;if(k&&b[k-1]>=5){    for(int i=k;i<u;i++){b[i]=b[i]+1;//这里直接加 1 而不是 t 是因为两个个位数相加最终结果是小于20的,所以进位最多为 1 if(b[i]<=9){t=0;break;}else b[i]-=10;} if(t) b.push_back(t);//如果一直循环到最后t还为1,那么就要最后进位 }for(int i=b.size()-1;i>=k;i--)//倒序输出 cout<<b[i];return 0;
}


http://www.ppmy.cn/news/1574478.html

相关文章

vue从入门到精通(十一):条件渲染

条件渲染 1.v-if 写法: (1).v-if“表达式” (2).v-else-if“表达式” (3).v-else“表达式” 适用于:切换频率较低的场景。 特点:不展示的DOM元素直接被移除。 注意:v-if可以和:v-else-if、v-else一起使用&#xff0c;但要求结构不能被“打断” 2.v-show 写法:v-show“…

Excell 代码处理

文章目录 Excell 代码处理cvc格式xlsl格式小结 Excell 代码处理 有时候要对excell进行分析&#xff0c;或者数据的导入导出&#xff0c;这个时候如果可以用代码读写分析操作那么会方便很多 cvc格式 CSV&#xff08;Comma-Separated Values&#xff0c;逗号分隔值&#xff09;是…

go 模块管理

go version 查看版本 go version go1.21.12 windows/amd64 需要保证:go的版本升级为1.11以上,go mod依赖的最底版本 go env 查看go的环境变量 go env 开启go mod # 标识开启go的模块管理 set GO111MODULE=on GO111MODULE有三个值:off, on和auto(默认值)。 GO111M…

Python 学习之旅:高级阶段(十一)数据库操作 Redis

在 Python 编程的高级阶段,数据库操作是一项重要的技能,而 Redis 作为一款高性能的非关系型数据库,在现代应用开发中扮演着关键角色。它不仅能显著提升应用的性能,还能解决许多复杂的业务问题。接下来,让我们一同深入探索如何使用 Python 操作 Redis 数据库。 一、Redis …

过程监督(Process Supervision)融入到 GRPO (Group Relative Policy Optimization)

下面演示如何把“过程监督&#xff08;Process Supervision&#xff09;”的思想融入到 GRPO (Group Relative Policy Optimization) 中&#xff0c;从而对每个输出的中间步骤逐一打分、计算相对优势。本文的示例代码与 grpo_train.py &#xff08;来源见下文&#xff09;类似&…

windows上vscode cmake工程搭建

安装vscode插件&#xff1a; 1.按装fastc&#xff08;主要是安装MinGW\mingw64比较方便&#xff09; 2.安装C&#xff0c;cmake&#xff0c;cmake tools插件 3.准备工作完成之后&#xff0c;按F1&#xff0c;选择cmake:Quick Start就可以创建一个cmake工程。 4.设置Cmake: G…

一个比 Nginx 还简单的 Web 服务器

企业级的 Web 服务器非常多&#xff0c;Nginx、Tomcat、Apache、IIS、FastAPI、Flask 等。今天松哥再给大家介绍一个开源的 Web 服务器&#xff0c;这款服务器具备自动 HTTPS 功能和高度可配置性&#xff0c;它的名字是&#xff1a;Caddy。 Caddy 是一个 Go 编写的 Web 服务器…

线代[8]|北大丘维声教授《怎样学习线性代数?》(红色字体为博主注释)

文章目录 说明一、线性代数的内容简介二、学习线性代数的用处三、线性代数的特点四、学习线性代数的方法五、更新时间记录 说明 文章中红色字体为博主敲录完丘教授这篇文章后所加&#xff0c;刷到这篇文章的读者在首次阅读应当跳过红色字体&#xff0c;先通读一读文章全文&…