codevs 2894 保留小数
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver
题目描述 Description
给你一个实数,小数点后不超过50位,请你保留到小数点后n位(四舍五入!!!)
输入描述 Input Description
第一行,一个实数,小数点后不超过50位
第二行,保留到N位小数
输出描述 Output Description
一个实数,保留过的小数
样例输入 Sample Input
5.198273258723587235728
3
样例输出 Sample Output
5.198
数据范围及提示 Data Size & Hint
不太大,注意一下就行了,记得是四舍五入
传送门 点此展开
这道题特简单,发出来只是冒个泡,证明我还在继续走着这条路。。
说不定年后就被赶走了
#include <iostream> #include <cstring> #include <cstdio> using namespace std; char s[14451245]; int i,n; int main() { int c=0; gets(s); cin>>n; for(i=0;i<strlen(s);++i) { if(s[i]=='.') { c=i; break; } } if(s[c+n+1]>='5'&&s[c+n+1]<='9') s[c+n]++; int k=0; while(s[c+n-k]>'9') { s[c+n]='0'; s[c+n-1]++; k++; } for(i=0;i<c+n+1;++i) cout<<s[i]; }
我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。