#include
#include
#include
using namespace std;
string e, h;//中间数组存储中间变量
string a;
int main()
{
long long int s = 0, b = 0, c = 0, d = 0;//判断是小数整数分数或者是百分数
getline(cin, a);
for (long long int i = 0; i < a.size(); i++)
{
d = 0;
if (a[i] == '.')
{
s = i;//体现符号的位置
break;
}
if (a[i] == '/')
{
b = i;
break;
}
if (a[i] == '%')
{
c = i;
break;
}
d = i;
}
if (d == 0 && a[0] == '0')
{
cout << '0';
}
if (d > 0)
{
long long int f = d;
for (long long int i = a.size() - 1; i >= 0; i--)
{
if (a[i] == '0')//md大傻逼,输的数字0
{
f--;
continue;
}
break;
}
for (long long int j = f; j >= 0; j--)
{
cout << a[j];
}
}
if (s > 0)
{
long long int num = 0, num2 = 0;
e = a.substr(0, s);
h = a.substr(s + 1, a.size());//将小数点前整数部分和小数部分分离出来
for (long long int k = 0; k < e.size(); k++)
{
if (e[k] == '0')
{
num++;
}
}
for (long long int j = 0; j < h.size(); j++)
{
if (h[j] == '0')
{
num2++;
}
}
if (num == e.size() && num2 == h.size())
{
cout << '.' << '0';
return 1;
}
for (long long int k = 0; k < e.size(); k++)
{
if (e[k] != 0)
{
break;
}
if (k == e.size() - 1)
{
cout << '0' << '.';
}
}
for (long long int k = 0; k < h.size(); k++)
{
if (e[k] != 0)
{
break;
}
if (k == h.size() - 1)
{
cout << '0';
}
}
long long int f = e.size();
for (long long int i = e.size() - 1; i >= 0; i--)
{
if (e[i] == '0')//md大傻逼,输的数字0
{
f--;
continue;
}
break;
}
for (long long int j = f - 1; j >= 0; j--)
{
cout << e[j];
}
cout << '.';
f = h.size();
for (long long int o = h.size() - 1; o >= 0; o--)
{
if (h[o] == '0')//md大傻逼,输的数字0
{
f--;
continue;
}
break;
}
if (num2 == h.size())
{
cout << '0';
return 0;
}
for (long long int j = f - 1; j >= 0; j--)
{
if (h[0] == '0' && j == 0)
{
break;
}
cout << h[j];
}
}
if (b > 0)//与上述同理其实,将符号前后分割出来
{
e = a.substr(0, b);
h = a.substr(b + 1, a.size());//将小数点前整数部分和小数部分分离出来
long long int f = e.size();
for (long long int i = e.size() - 1; i >= 0; i--)
{
if (e[i] == '0')
{
f--;
continue;
}
break;
}
for (long long int j = f - 1; j >= 0; j--)
{
cout << e[j];
}
cout << '/';
f = h.size();
for (long long int o = h.size() - 1; o >= 0; o--)
{
if (h[o] == '0')//md大傻逼,输的数字0
{
f--;
continue;
}
break;
}
for (long long int j = f - 1; j >= 0; j--)
{
if (h[0] == '0' && j == 0)
{
break;
}
cout << h[j];
}
}
if (c > 0)
{
e = a.substr(0, c);
long long int f = e.size();
for (long long int i = e.size() - 1; i >= 0; i--)
{
if (e[i] == '0')//md大傻逼,输的数字0
{
f--;
continue;
}
break;
}
for (long long int j = f - 1; j >= 0; j--)
{
cout << e[j];
}
cout << '%';
}
return 0;
}```cpp
#include
#include
#include
using namespace std;
string e, h;//中间数组存储中间变量
string a;
int main()
{
long long int s = 0, b = 0, c = 0, d = 0;//判断是小数整数分数或者是百分数
getline(cin, a);
for (long long int i = 0; i < a.size(); i++)
{
d = 0;
if (a[i] == '.')
{
s = i;//体现符号的位置
break;
}
if (a[i] == '/')
{
b = i;
break;
}
if (a[i] == '%')
{
c = i;
break;
}
d = i;
}
if (d == 0 && a[0] == '0')
{
cout << '0';
}
if (d > 0)
{
long long int f = d;
for (long long int i = a.size() - 1; i >= 0; i--)
{
if (a[i] == '0')//md大傻逼,输的数字0
{
f--;
continue;
}
break;
}
for (long long int j = f; j >= 0; j--)
{
cout << a[j];
}
}
if (s > 0)
{
long long int num = 0, num2 = 0;
e = a.substr(0, s);
h = a.substr(s + 1, a.size());//将小数点前整数部分和小数部分分离出来
for (long long int k = 0; k < e.size(); k++)
{
if (e[k] == '0')
{
num++;
}
}
for (long long int j = 0; j < h.size(); j++)
{
if (h[j] == '0')
{
num2++;
}
}
if (num == e.size() && num2 == h.size())
{
cout << '.' << '0';
return 1;
}
for (long long int k = 0; k < e.size(); k++)
{
if (e[k] != 0)
{
break;
}
if (k == e.size() - 1)
{
cout << '0' << '.';
}
}
for (long long int k = 0; k < h.size(); k++)
{
if (e[k] != 0)
{
break;
}
if (k == h.size() - 1)
{
cout << '0';
}
}
long long int f = e.size();
for (long long int i = e.size() - 1; i >= 0; i--)
{
if (e[i] == '0')//md大傻逼,输的数字0
{
f--;
continue;
}
break;
}
for (long long int j = f - 1; j >= 0; j--)
{
cout << e[j];
}
cout << '.';
f = h.size();
for (long long int o = h.size() - 1; o >= 0; o--)
{
if (h[o] == '0')//md大傻逼,输的数字0
{
f--;
continue;
}
break;
}
if (num2 == h.size())
{
cout << '0';
return 0;
}
for (long long int j = f - 1; j >= 0; j--)
{
if (h[0] == '0' && j == 0)
{
break;
}
cout << h[j];
}
}
if (b > 0)//与上述同理其实,将符号前后分割出来
{
e = a.substr(0, b);
h = a.substr(b + 1, a.size());//将小数点前整数部分和小数部分分离出来
long long int f = e.size();
for (long long int i = e.size() - 1; i >= 0; i--)
{
if (e[i] == '0')
{
f--;
continue;
}
break;
}
for (long long int j = f - 1; j >= 0; j--)
{
cout << e[j];
}
cout << '/';
f = h.size();
for (long long int o = h.size() - 1; o >= 0; o--)
{
if (h[o] == '0')//md大傻逼,输的数字0
{
f--;
continue;
}
break;
}
for (long long int j = f - 1; j >= 0; j--)
{
if (h[0] == '0' && j == 0)
{
break;
}
cout << h[j];
}
}
if (c > 0)
{
e = a.substr(0, c);
long long int f = e.size();
for (long long int i = e.size() - 1; i >= 0; i--)
{
if (e[i] == '0')//md大傻逼,输的数字0
{
f--;
continue;
}
break;
}
for (long long int j = f - 1; j >= 0; j--)
{
cout << e[j];
}
cout << '%';
}
return 0;
}