UVa202 Repeating Decimals
2015-06-22 16:49
501 查看
#include <stdio.h>
#include <map>
using namespace std;
int main()
{
int a, b, c, q, r, places;
map<int, int> rmap;
pair<map<int, int>::iterator, bool> pr;
int qarr[50];
while (scanf("%d %d", &a, &b) == 2)
{
rmap.clear();
places = 0;
r = a % b;
for (;;)
{
c = r * 10;
pr = rmap.insert(make_pair(c, places));
if (!pr.second)
break;
q = c / b;
r = c % b;
if (places < 50)
qarr[places] = q;
++places;
}
printf("%d/%d = %d.", a, b, a/b);
r = places > 50 ? 50 : places;
for (c = 0; c < r; ++c)
{
if (c == (pr.first)->second)
putchar('(');
printf("%d", qarr[c]);
}
if (places > 50)
printf("...");
printf(")\n %d = number of digits in repeating cycle\n\n", places - (pr.first)->second);
}
return 0;
}
#include <map>
using namespace std;
int main()
{
int a, b, c, q, r, places;
map<int, int> rmap;
pair<map<int, int>::iterator, bool> pr;
int qarr[50];
while (scanf("%d %d", &a, &b) == 2)
{
rmap.clear();
places = 0;
r = a % b;
for (;;)
{
c = r * 10;
pr = rmap.insert(make_pair(c, places));
if (!pr.second)
break;
q = c / b;
r = c % b;
if (places < 50)
qarr[places] = q;
++places;
}
printf("%d/%d = %d.", a, b, a/b);
r = places > 50 ? 50 : places;
for (c = 0; c < r; ++c)
{
if (c == (pr.first)->second)
putchar('(');
printf("%d", qarr[c]);
}
if (places > 50)
printf("...");
printf(")\n %d = number of digits in repeating cycle\n\n", places - (pr.first)->second);
}
return 0;
}
相关文章推荐
- 随笔
- 日常3
- Python学习手册 上传文件太大,上传2次均失败
- 笔记:MySQL初次使用安全设置
- Mysql my.ini 配置文件详解
- codeforces 549C C. The Game Of Parity(博弈)
- 多线程第四篇秒杀 一个经典的多线程同步问题
- 通过JavaScript原型链理解基于原型的编程
- alex教学用例--员工信息表
- android ListView 几个重要属性
- (ADO.NET)SqlCommand参数化查询
- 课程改进意见
- Windows bitmap文件解析
- unordered_map map hash_map
- unix环境高级编程——read(),write()
- 2015年4、5、6月刷题、比赛的总结与反思
- 2015年1、2、3月刷题、比赛的总结与反思
- 聚沙成塔--建设分享型团队
- 跨域之-jquery操作
- 课程改进意见