AcWing 5972. 科学记数法(初见ac的简短好懂的代码)
原题链接
中等
作者:
3ssssss
,
2024-12-20 15:15:18
,
所有人可见
,
阅读 4
自认为比较好读懂的解答,也是初见题ac的代码
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 10010;
int g[N], idx;
int a, b;
int main()
{
scanf("%1d.", &a);
char str;
while(cin >> str)
{
if(str == 'e') break;
g[idx ++] = str - '0';
}
scanf("%d", &b);
//以上是输入前面的a、后面的b和中间的每个数字g[i]
int sum = 0;
for(int i = 0; i < idx; i ++) sum += g[i];
if(sum == 0 && b == 0) printf("%d", a);
//如果中间部分和后面部分是零,直接输出前面的a就可以了
else
{
printf("%d", a);
for(int i = 0; i < max(idx, b); i ++)
{
if(i == b && sum > 0) printf(".");
printf("%d", g[i]);
}
}
return 0;
}