码迷,mamicode.com
首页 > 其他好文 > 详细

HDU ACM 2522 A simple problem 模拟除法

时间:2015-06-02 17:51:31      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:c   c++   acm   算法   编程   

分析:在除的过程中,当出现相同余数时即出现循环节。

#include<iostream>
using namespace std;

bool h[100002];

void div(int x)
{
	int t;

	memset(h,false,x*sizeof(h[0])+1);
	h[1]=true;
	t=1;
	while(t)
	{
		t=t*10;
		cout<<t/x;
		t=t%x;
		if(h[t])  //再次出现相同余数,表示出现循环节
			break;
		h[t]=true;
	}
}

int main()      
{
	int T,n;

	cin>>T;
	while(T--)
	{
		cin>>n;
		if(n<0)
		{
			cout<<"-";
			n=-n;
		}
		if(n==1)
		{
			cout<<1<<endl;
			continue;
		}
		cout<<"0.";
		div(n);
		cout<<endl;
	}
    return 0;      
}


HDU ACM 2522 A simple problem 模拟除法

标签:c   c++   acm   算法   编程   

原文地址:http://blog.csdn.net/a809146548/article/details/46332585

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!