166. Fraction to Recurring Decimal
来源:互联网 发布:52单片机stc 编辑:程序博客网 时间:2024/05/03 08:19
//0ms ac//边界实在是太恶心,取个巧直接用longlong来解决//第二种方法错在不能准确的标记循坏开始的位置,所以只好弃掉unordered_set,用unordered_mapclass Solution {public: string my_atoi(int n) { if(n==-2147483648) return "2147483648"; string s; int len=log(n+0.1)/log(10); for(int i=pow(10,len);i>=1;i/=10) { s.push_back(n/i+'0'); n=n%i; } return s; } string fractionToDecimal(int numerator, int denominator) { long long num=numerator,deo=denominator,temp,n,m; bool plus_flag=true; if((num<0&&deo>0)||(num>0&&deo<0)) plus_flag=false; num=abs(num); deo=abs(deo); n=num/deo; m=num%deo; if(m==0) { if(!plus_flag) return '-'+my_atoi(n); else return my_atoi(n); } unordered_map<int,int> hash; queue<int> s; int i=0; while(m!=0&&hash.find(m)==hash.end()) { temp=m*10/deo; s.push(temp); hash[m]=i++; m=m*10%deo; } i=hash[m]; string str; if(!plus_flag) str+='-'; str+=my_atoi(n); str+='.'; while(!s.empty()) { if(m!=0&&i--==0) { str+='('; } str.push_back(s.front()+'0'); s.pop(); } if(m!=0) str+=')'; return str; }};
class Solution {public: string my_atoi(int n) { if(n==-2147483648) return "-2147483648"; string s; if(n<0) { s.push_back('-'); n=-n; } int len=log(n+0.1)/log(10); for(int i=pow(10,len);i>=1;i/=10) { s.push_back(n/i+'0'); n=n%i; } return s; } string fractionToDecimal(int numerator, int denominator) { //if(numerator==-2147483648&&denominator==1) return "-2147483648"; //if(numerator==-2147483648&&denominator==-1) return "-2147483648"; long long num=numerator,deo=denominator,temp,n,m; bool plus_flag=true; if((num<0&&deo>0)||(num>0&&deo<0)) plus_flag=false; num=abs(num); deo=abs(deo); n=num/deo; m=num%deo; if(m==0) return my_atoi(n); unordered_set<int> hash; queue<int> s; while(m!=0&&hash.find(m)==hash.end()) { temp=m*10/deo; s.push(temp); hash.insert(m); m=m*10%deo; } temp=m*10/deo; string str; if(!plus_flag) str+='-'; str+=my_atoi(n); str+='.'; bool flag=true; while(!s.empty()) { if(flag&&s.front()==temp&&m!=0) { str+='('; flag=false; } str.push_back(s.front()+'0'); s.pop(); } if(m!=0) str+=')'; return str; }};
0 0
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- 166. Fraction to Recurring Decimal
- minicom configuration
- ZOJ 2969 Easy Task
- <Pro WPF 4.5 in C#> - Note-01
- 跨浏览器处理事件
- 编程学习笔记之MFC内部组织架构
- 166. Fraction to Recurring Decimal
- 关于github
- 将博客搬至51CTO
- Android Studio-强大的gradle用5招教你多渠道打包
- 进程调度时机跟踪分析进程调度与进程切换的过程
- 工具类
- Error:failed to find Build Tools revision 21.1.1
- 稀疏自编码器
- 递归函数