当前位置: 首页 > news >正文

蓝桥杯2024年第十五届省赛真题-R 格式

题目链接:

思路:

通过数组模拟d的每一位,逐位进行计算,从而实现对d的精确处理。

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2020;

int n;
string s;
vector<int> q;

void gd(vector<int>& q, int num){
    int t = 0;
    for(int i = 0; i < (int)q.size(); i++){
        //计算每一位乘 num
        t += q[i] * num;
        //余数
        q[i] = t % 10;
        //进位
        t /= 10;
    }
    //进位
    if(t) q.push_back(t);
}

void add(vector<int>& q, int k, int num){
    //t=num 表示后面一位要加上前面一位 / 10 的数(进位)
    int t = num;
    for(int i = k; i < (int)q.size(); i++){
        t += q[i];
        q[i] = t % 10;
        t /= 10;
    }
    if(t) q.push_back(t);
}

signed main(){
    cin >> n >> s;
    //反转s
    reverse(s.begin(), s.end());
    //得到s反转后小数点的位置
    int c = s.find('.');
    //将反转的s存入q中
    for(auto x: s){
        if(x !='.'){
            //将x转换为int类型
            q.push_back(x - '0');
        }
    }
    //高精度 * 低精度
    while(n--) gd(q, 2);
    
    //四舍五入
    //反转后判断小数点前面位置
    //q中没有存'.',所以小数点位置就是进位的位置
    if(q[c-1] >= 5) add(q,c,1);
    //输出整数答案 逆序
    for(int i = (int)q.size()-1; i >= c; i--){
        cout << q[i];
    }
    return 0;
}

http://www.dtcms.com/a/111294.html

相关文章:

  • 安卓手机的重复文件清理工具
  • MySQL学习笔记——MySQL下载安装配置(一)
  • xpath定位
  • 康拓展开补充:逆康拓展开
  • 强化中小学人工智能教育:塑造未来社会的科技基石
  • Linux C++编译及g++使用操作
  • Python集合(五)
  • PostgreSQL 删除数据库
  • Vanna:用检索增强生成(RAG)技术革新自然语言转SQL
  • 深入解析大型应用架构:以dify为例进行分析
  • goto在Java中的用法
  • 架构与大数据-RabbitMQ‌和Kafka的技术实现异同及落地场景上的异同
  • 数据库相关简介
  • MINIQMT学习课程Day9
  • leetcode 代码随想录 数组-区间和
  • Cortex-M 上编写汇编函数
  • 01-STM32(介绍、工具准备、新建工程)p1-4
  • 重要头文件下的函数
  • [Python学习日记-89] 并发编程之多进程 —— 共享数据、信号量、事件、进程池
  • 【nginx】Nginx的功能特性及常用功能
  • PostgreSQL:表分区与继承
  • OBS录制的一些日志
  • python如何把列表中所有字符变成小写
  • GATT(Generic Attribute Profile)是蓝牙低功耗(Bluetooth Low Energy,简称BLE)协议栈中的一个核心协议
  • 【蓝桥杯】算法笔记3
  • 函数栈帧的创建与销毁
  • 言语理解与表达
  • 实战交易策略 篇十四:江南神鹰捕捉热点和熊市生存交易策略
  • 专为 零基础初学者 设计的最简前端学习路线,聚焦核心内容,避免过度扩展,帮你快速入门并建立信心!
  • 第15周:注意力汇聚:Nadaraya-Watson 核回归