usaco2.4.6分数化小数
来源:互联网 发布:unity3d游戏开发流程 编辑:程序博客网 时间:2024/06/06 04:18
思路是对的,只可惜判断循环小数的方法错了,我竟然一个一个比过去233,如果我好好用hash的话,这一题就秒过了,o(︶︿︶)o 唉,hash。。。。。。
#include<iostream>
#include <cmath>#include <cstdio>
using namespace std;
int yushu[1000002],k=0,k1=0,k2=0;
struct aaa{bool a1;int wei;}hash[1000002];
void huanhuang(void);
int main()
{
//freopen("fracdec.in","r",stdin);
//freopen("fracdec.out","w",stdout);
int n,shu;
cin>>n>>shu;
if(n<shu){cout<<0;
huanhuang();}
while(n>=shu){
cout<<n/shu;
int ll=n/shu,i;
for(i=0;ll>0;i++)
ll/=10;
k+=i;
n%=shu;
}
cout<<'.';
huanhuang();
if(n==0){cout<<0<<endl;return 0;}
while(n!=0)
{
if(!hash[n].a1){yushu[++k1]=n;hash[n].a1=true;hash[n].wei=k1;}
else {k2=hash[n].wei;break;}
n=n*10%shu;
}
if(n==0){for(int i=1;i<=k1;i++){printf("%d",yushu[i]*10/shu);huanhuang();}
cout<<endl;
}
else {
for(int i=1;i<k2;i++)
{printf("%d",yushu[i]*10/shu);huanhuang();}
cout<<'(';
huanhuang();
for(int i=k2;i<=k1;i++)
{printf("%d",yushu[i]*10/shu);huanhuang();}
cout<<')'<<endl;
}
return 0;
}
void huanhuang(void)
{
k++;
if(k==76){cout<<endl;k=0;}
}
0 0
- usaco2.4.6分数化小数
- 【USACO2.4.5】分数化小数 模拟
- [USACO2.4]分数化小数 Fractions to Decimals
- 【模拟】分数化小数
- 分数化小数
- 分数化小数
- 分数化小数
- 分数化小数
- 分数化小数
- 1121 -- 分数化小数
- 分数化小数
- 分数化小数
- 分数化小数
- 分数化小数2
- 分数化小数
- 分数化小数
- usaco分数化小数
- 分数化小数decimal
- LeetCode OJ算法题(十四):Longest Common Prefix
- mysql最基本也是最常用的几个命令
- 强大的R
- was cached in the local repository, resolution will not be reattempted until the update interval of
- 大神求解
- usaco2.4.6分数化小数
- 黑马程序员-static关键字的小总结
- Could not execute JDBC batch update
- Plan
- Android在初始化时弹出popwindow的方法
- com关于GUID
- 和最大的子序列(简单dp)
- 【转】大数四则运算的C++实现
- linux下VNC配置详解