#3 #19 没过
https://www.luogu.com.cn/record/104736297
#include<bits/stdc++.h>
using namespace std;
string s;
long long ans(int l,int r){
long long cnt = 0;
int xd=1,flag = 0;
for(int i = l; i <= r; i++){
if(flag == 0 && s[i] == '0'){
xd *= 10;
}else if(s[i] != '0'){
flag = 1;
}
cnt += (s[i]-'0') * pow(10,i-l);
}
return cnt/xd;
}
int main(){
int type = 0,cnt;
cin >> s;
int n = s.length();
for(int i = 0; i < n; i++){
if(s[i] == '.'){
type = 1;
cnt = i;
break;
}else if(s[i] == '/'){
type = 2;
cnt = i;
break;
}else if(s[i] == '%'){
type = 3;
break;
}
}
if(type == 0){
cout << ans(0,n-1);
}else if(type == 1){
cout << ans(0,cnt-1) << "." << ans(cnt+1,n-1);
}else if(type == 2){
cout << ans(0,cnt-1) << "/" << ans(cnt+1,n-1);
}else{
cout << ans(0,n-2) << "%";
}
return 0;
}
输入:12345678910111213140
答案:4131211101987654321
输出:4131211101987654144