您的位置:首页 > 财经 > 产业 > cad图库大全素材免费下载_厦门广告公司排行榜_搜狗seo优化_网站性能优化

cad图库大全素材免费下载_厦门广告公司排行榜_搜狗seo优化_网站性能优化

2025/4/3 0:04:11 来源:https://blog.csdn.net/wuqingshun314159/article/details/146438748  浏览:    关键词:cad图库大全素材免费下载_厦门广告公司排行榜_搜狗seo优化_网站性能优化
cad图库大全素材免费下载_厦门广告公司排行榜_搜狗seo优化_网站性能优化

问题描述

小蓝最近在研究一种浮点数的表示方法:R 格式
对于一个大于 0 的浮点数 d,可以用 R 格式的整数来表示。

给定一个转换参数 n,将浮点数转换为 R 格式整数的做法是:

  1. 将浮点数乘以 2^n
  2. 将结果四舍五入到最接近的整数。

输入格式

一行输入一个整数 n 和一个浮点数 d,分别表示转换参数和待转换的浮点数。


输出格式

输出一行表示答案:d 用 R 格式表示出来的值。


样例输入

2 3.14

样例输出

13

样例说明

3.14 × 2^2 = 12.56,四舍五入后为 13。


评测用例规模与约定

  • 对于 50% 的评测用例:
    1 ≤ n ≤ 10,d 的字符串长度 ≤ 15;
  • 对于 100% 的评测用例:
    1 ≤ n ≤ 1000,d 的字符串长度 ≤ 1024,保证 d 是小数(即包含小数点)。

c++代码

#include<bits/stdc++.h>
#include<stdio.h>using namespace std;int n;
string d;string highmutiple(string a, string b) {if (a == "0" || b == "0") return "0";int m = a.size(), n = b.size();vector<int> aa(m), bb(n), cc(m + n, 0);for (int i = 0; i < m; i++) {aa[i] = a[m - i - 1] - '0';}for (int i = 0; i < n; i++) {bb[i] = b[n - i - 1] - '0';}for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {cc[i + j] += aa[i] * bb[j];cc[i + j + 1] += cc[i + j] / 10;cc[i + j] %= 10;}}string c;int k = m + n - 1;while(cc[k] == 0) k--;while(k >= 0) {c += to_string(cc[k]);k--;}return c;
}string addone(string a) {int m = a.size();vector<int> aa(m + 1);for (int i = 0; i < m; i++) {aa[i] = a[m - i - 1] - '0';}aa[0]++;for (int i = 0; i < m; i++) {aa[i + 1] += aa[i] / 10;aa[i] %= 10;}string b;int k = m;if (aa[m] == 0) k--;while(k >= 0) {b += to_string(aa[k]);k--;}return b;
}int main() {cin >> n >> d;string a = "1";while(n--) {a = highmutiple(a, "2");}int k = d.find(".");d.erase(k, 1);string ans = highmutiple(a, d);string zhen = ans.substr(0, ans.size() - (d.size() - k));if (ans[ans.size() - (d.size() - k)] >= '5') zhen = addone(zhen);cout << zhen;return 0;
}//by wqs

解题思路

高精度问题

计算的时候把小数点去掉,记录小数点后面有多少位。d有多少位小数,答案就有多少位小数

四舍五入只要判断小数点后的一位是不是比5大就行了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com