【华为上机真题 2022】取近似值
admin
2024-01-21 03:55:07

🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 关注专栏: 数据结构和算法成神路【精讲】优质好文持续更新中……🚀🚀🚀

🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬


目录

一、题目描述

1.1 输入描述

1.2 输出描述

二、测试样例

三、解题思路

3.1 方法一

3.2 方法二

四、代码实现

4.1 方法一

4.2 方法二 

五、时间复杂度


注意:题目来源于网络用户分享,本文仅分享做题思路和方法,如有侵权请联系我删除!

一、题目描述

写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 5, 向上取整;小于 5,则向下取整。

1.1 输入描述

输入一个正浮点数值

1.2 输出描述

输出该数值的近似整数值

二、测试样例

输入

5.5

输出

6

三、解题思路

本题可以通过两种方法求解。

3.1 方法一

通过字符串处理正浮点数,判断第一位小数是否大于等于 5,如果是则模拟将整数部分的字符串加 1,否则,输出整数部分的字符串。

3.2 方法二

将输入值乘以 10,取整后取余数,此时,余数为第一位小数,然后,判断余数是否大于等于 5,如果是则将输入值加 1。最后将输入值取整输出。

四、代码实现

4.1 方法一

通过字符串处理输入值,代码如下所示。

#include 
#include 
#include 
using namespace std;//将字符串里存储的整数加 1
string strAddOne(string str)
{string ans;bool flag = true;for (int i = str.size() - 1; i >= 0; --i) {if (!flag) {str = str.substr(0, i + 1);reverse(str.begin(), str.end());ans += str;break;}if (str[i] == '9') { // 如果是 9,则进一ans += '0';} else {flag = false;ans += (str[i] + 1);}}if (flag) { // 注意最后还有进位的情况ans += '1';}reverse(ans.begin(), ans.end());return ans;
}
string slove(string str)
{bool flag = false;int idx = str.find('.'); //判断是否可以进位if (idx + 1 < (int)str.size() && str[idx + 1] >= '5') {flag = true;}str = str.substr(0, idx);return flag ? strAddOne(str) : str;
}int main()
{string str;while (cin>>str) {if (str.find('.') == string::npos) { // 判断是否存在小数部分cout<

4.2 方法二 

通过取余判断第一位小数,代码如下所示。

#include 
#include 
using namespace std;int main()
{double ans;while(cin>>ans) {int rem = (int)(ans * 10) % 10; // 取得小数点后第一个小数的值if (rem >= 5) { // 判断小数的值ans += 1;}cout<<(int)ans<

五、时间复杂度

方法一的时间复杂度为 O(1),方法二的时间复杂度为 O(n),其中,n 为字符串的长度。


🎈 感觉有帮助记得「一键三连支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞


相关内容

热门资讯

海东旅游收入达294亿元 本报讯(西海新闻记者 吴予琴)12月18日,记者从“‘十四五’发展成就”系列主题新闻发布会海东市专场...
湖北二本院校名单和排名最新或2...  最新或2023(历届)高考越来越近不仅考试忙家长也忙,忙着帮助孩子选大学。到底给孩子选哪个大学好哪...
湖北省三本大学名单和排名最新或...  为了满足我国两岸四地高考考生及家长了解湖北省高校的办学水平和办学实力,艾瑞深中国校友会网最新发布最...
湖北艺术类大学排名最新或202...  最新或2023(历届)高考一日日临近,又到了一年一度的高校招生季,要想走好高考的第一步,就必须要了...
湖北体育类大学排名最新或202...   最新或2023(历届)高考一日日临近,又到了一年一度的高校招生季,要想走好高考的第一步,就必须要...