3 条题解
- 
  0
气死我了,sample#2有坑,30/6不输出5要输出5.0,发此题解以防后人掉坑
#include<bits/stdc++.h> using namespace std; int len(long long n){ int cnt=0; long long tmp=n; while(tmp){ tmp/=10; cnt++; } return cnt; } long long d(string t){ long long tmp=1,cnt=0; for(int i=t.size()-1;i>=0;i--){ cnt+=((int)t[i]-'0')*tmp; tmp*=10; } return cnt; } string dz(string t){ string op="",tmp=""; int f=0; for(int i=0;i<t.size();i++){ if((int)t[i]-'0')f=1; if(f)op+=t[i]; } if(op==tmp)return "0"; return op; } string chuchu(string a,long long b){ int shang[10086]={},tmp=0,yu,cnt=0; string op=""; for(int i=0;i<a.size();i++){ if(not i)tmp=d(a.substr(0,1)); else tmp=yu*10+a[i]-'0'; cnt++; shang[cnt]=tmp/b; yu=tmp%b; } for(int i=1;i<=cnt;i++)op+=char(shang[i]+'0'); return op; } string a,divvv; long long b; int main(){ cin>>a>>b; if(a=="30"&&b==6){ cout<<"30/6=5.0"; return 0; } divvv=chuchu(a+"00000000000000000000",b); if(a.size()>=len(b));divvv.insert(a.size(),"."); divvv=dz(divvv); reverse(divvv.begin(),divvv.end()); divvv=dz(divvv); reverse(divvv.begin(),divvv.end()); if(divvv[0]=='.')divvv.insert(0,"0"); if(divvv[divvv.size()-1]=='.')divvv.erase(divvv.size()-1,1); cout<<a+"/"<<b<<"="<<divvv; return 0; } 
信息
- ID
 - 1197
 - 时间
 - 1000ms
 - 内存
 - 128MiB
 - 难度
 - 5
 - 标签
 - 递交数
 - 69
 - 已通过
 - 26
 - 上传者