求a/b的小数表现形式。如果a可以整除b则不需要小数点。如果是有限小数,则可以直接输出。如果是无限循环小数,则需要把小数循环的部分用"()"括起来。

输入描述:

两个整数a和b,其中0 <= a <= 1000 0001 <= b <= 10 000

输出描述:

一个字符串,该分数的小数表现形式

示例1

输入

10 1

输出

10

说明

10/1 = 10

示例2

输入

1 2

输出

0.5

说明

1/2 = 0.5

示例3

输入

1 3

输出

0.(3)

说明

1/3 = 0.333333...

示例4

输入

1 6

输出

0.1(6)

说明

1/6 = 0.16666666....

示例5

输入

1 7

输出

0.(142857)

说明

1 / 7 = 0.1428571428...

这是一道经典的模拟除法的题目,注意,判断是否循环的标准,是看被除数是否重复出现,而不是答案是否重复出现。所以需要用Hash表记录下每一次出现的a以及位置,如果发现a重复出现了,说明循环了。输出的时候分为三部分,先输出整数部分,小数部分分为循环前的部分和循环的部分,依次思路可以写出代码

#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
int main() {int a, b;cin >> a >> b;int res = a / b;cout << res;a = a % b;if (a == 0) return 0;            // 能整除情况cout << '.';unordered_map<int,int> map;      vector<int> arr;int i = 0;while (a != 0) {if (map.find(a) == map.end()) {arr.push_back(a * 10 / b);    // 答案map[a] = i;                   // 除数a的位置i++;a = a * 10 % b;}else {int k = map[a];               // 输出之前的答案for (int j = 0; j < k; j++) cout << arr[j];cout << '(';                  // 输出小数循环的答案for (int j = k; j < i; j++) cout << arr[j];cout << ')';return 0;}}
}

2019快手校招面试题循环小数相关推荐

  1. 2019 快手校招笔试题详解

    可以理解为把5本书插到14本书的中间,即加头尾的15个空格里,有多少种组合.因为不能相邻,所以是有C(15, 5) = 3003 种方法 实际做的时候可以先计算C(19,5),可以在A,B中选一个,大 ...

  2. 2019 美团校招笔试题 外卖满减

    时间限制:1秒 空间限制:65536K 你打开了美了么外卖,选择了一家店,你手里有一张满X元减10元的券,店里总共有n种菜,第i种菜一份需要A_i元,因为你不想吃太多份同一种菜,所以每种菜你最多只能点 ...

  3. 字节跳动2019届校招笔试题

    1.世界杯开幕式会在球场C举行,球场C的球迷看台可以容纳M*N个球迷.在球场售票完成后,现官方想统计此次开幕式一共有多少个球队球迷群体,最大的球队球迷群体有多少人. 经调研发现,球迷群体在选座时有以下 ...

  4. 2019 小米校招笔试题 小米大礼包

    小米之家是成人糖果店.里面有很多便宜,好用,好玩的产品.中秋节快到了,小米之家想给米粉们准备一些固定金额大礼包.对于给定的一个金额,需要判断能不能用不同种产品(一种产品在礼包最多出现一次)组合出来这个 ...

  5. 快手校招面试题 最少数量货物装箱问题

    题目 链接:https://www.nowcoder.com/questionTerminal/37aa8a88a72e47f798a14d63bee61d8f?toCommentId=3433244 ...

  6. 2019 快手校招编程题两道解答

    [编程题] 二进制中有多少个1 时间限制:1秒 空间限制:32768K 把一个32-bit整型转成二进制,其中包含多少个1,比如5的二进制表达是101,其中包含2个1 输入描述: 输入为整型(十进制) ...

  7. 快手校招笔试题 数字序列第n位的值

    题目描述 有一个无限长的数字序列1,2,2,3,3,3,4,4,4,4,5,5,5,5,5...(数字序列从1开始递增,且数字k在该序列中正好出现k次),求第n项是多少 输入描述: 输入为一个整数n ...

  8. 2019 百度校招面试题

    TCP/IP 三次握手 1.建立连接协议(三次握手) (1)客户 端发送一个带SYN标志的TCP报文到server.这是三次握手过程中的报文1. (2) server端回应client的,这是三次握手 ...

  9. C++校招常见面试题(2019年校招总结)

    总结了语法.数据结构.常见排序算法.操作系统.网络五大块常见校招面试题.欢迎补充与修正. ★★语法知识★★ 一.C++与C的区别 面向对象与面向过程的区别 面向过程 面向过程编程是就分析出解决问题题的 ...

最新文章

  1. 【OpenCV】OpenCV中积分图函数与应用
  2. ubuntu 搜狗输入法成功安装
  3. rbf神经网络_基于RBF神经网络的监督控制(09)
  4. seajs 的研究二 -- 无题
  5. Lua 操作 MongoDB 数据库实例
  6. 大数据领域33个预测,开启未知的2016
  7. hdu 4691 Front compression
  8. ELK官方文档收集Kibana监视数据编辑
  9. 使用treesoft下的TreeNMS管理和监控redis服务器
  10. backupexec linux oracle,自动恢复 - 详解通过Backup Exec来实施Oracle灾难恢复_数据库技术_Linux公社-Linux系统门户网站...
  11. 绿坝现漏洞政府天价难护航
  12. 神经网络物联网未来发展趋势怎么样
  13. MySQL索引原理(标贝科技)
  14. 再也找不到理由 打扰你_伤感日志
  15. 剑指Offer——腾讯+360+搜狗校招笔试题+知识点总结
  16. PyTorch笔记【1】---A卡安装(RX580)无果后,改为N卡(2070)安装。这年头就不要用CPU了来搞AI了
  17. [运维] 在CentOS7系统上安装部署wok
  18. 浅学了一下销售订单和交货单的关系和创建(小白莫喷)
  19. Oracle(甲骨文)中国研发中心大规模秘密裁员
  20. filezilla linux 64位,FileZilla 64位

热门文章

  1. 老说技术更迭快,可十年到底可以淘汰多少知识?
  2. c语言怎样统计数组的长度,C语言指针难吗?纸老虎而已,纯干货讲解
  3. STM-32:ADC模数转换器—ADC单通道转换/ADC多通道转换
  4. android java 启用4g_[RK3399] 修改移动网络默认为4G
  5. 常见的4种编程范式比较
  6. 工业智能网关BL110应用之五十六: 实现西门子S7-200 PLC接入华为 云平台
  7. Vue+nodejs开发的一个处理闲置物品的校园线上交易平台
  8. 随笔:linux系统修改root账户名
  9. 【Unity 资源分享】 | Unity 精品写实动物模型+全套动画 资源分享
  10. 我的理想计算机英语小短文,我的理想职业英语作文(精选10篇)