'commit'
This commit is contained in:
84
TangDou/LuoGuBook/P1553.cpp
Normal file
84
TangDou/LuoGuBook/P1553.cpp
Normal file
@@ -0,0 +1,84 @@
|
||||
#include<bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
/**
|
||||
0.000009->0.9
|
||||
0.900000->0.000009
|
||||
00000.00000->0.0
|
||||
0/1230000->0/321不是0也不是0/0000321
|
||||
000000000->0
|
||||
1.00 -->1.0
|
||||
0% --->0%
|
||||
*/
|
||||
//是哪种?
|
||||
int getType(string a) {
|
||||
if (a.find('.') != a.npos) return 2;
|
||||
if (a.find('/') != a.npos) return 3;
|
||||
if (a.find('%') != a.npos) return 4;
|
||||
return 1;//整数
|
||||
}
|
||||
|
||||
int main() {
|
||||
string a;
|
||||
int i, p, end;
|
||||
cin >> a;
|
||||
if (a == "0") {
|
||||
printf("%d", 0);
|
||||
return 0;
|
||||
}
|
||||
switch (getType(a)) {
|
||||
case 1:
|
||||
//去掉前导0
|
||||
i = a.size() - 1;
|
||||
while (a[i] == '0')i--;
|
||||
//输出
|
||||
if (i == -1) cout << 0;
|
||||
else
|
||||
while (i >= 0) cout << a[i], i--;
|
||||
break;
|
||||
case 2:
|
||||
p = a.find('.');
|
||||
//输出整数部分
|
||||
i = p - 1;
|
||||
while (a[i] == '0')i--;
|
||||
//如果只有一个0
|
||||
if (i == -1) cout << 0;
|
||||
else while (i >= 0) cout << a[i], i--;
|
||||
//输出.
|
||||
cout << ".";
|
||||
//小数部分开始
|
||||
i = a.size() - 1;
|
||||
//跳过后导0
|
||||
end = p + 1;
|
||||
while (a[end] == '0')end++;//去除前导0
|
||||
if (i < end) cout << 0;
|
||||
else
|
||||
while (i >= end) cout << a[i], i--;
|
||||
break;
|
||||
case 3:
|
||||
p = a.find('/');
|
||||
//分子
|
||||
i = p - 1;
|
||||
while (a[i] == '0')i--;
|
||||
if (i == -1) cout << 0;
|
||||
else while (i >= 0) cout << a[i], i--;
|
||||
//除号
|
||||
cout << "/";
|
||||
//分母
|
||||
i = a.size() - 1;
|
||||
//跳过前导0
|
||||
while (a[i] == '0')i--;
|
||||
while (i > p) cout << a[i], i--;
|
||||
break;
|
||||
case 4:
|
||||
//去掉前导0
|
||||
i = a.size() - 2;//注意这里最后一位是%号
|
||||
while (a[i] == '0')i--;
|
||||
if (i == -1) cout << 0;
|
||||
else while (i >= 0) cout << a[i], i--;
|
||||
//输出%
|
||||
cout << "%";
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user