2019快手校招面试题循环小数
求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快手校招面试题循环小数相关推荐
- 2019 快手校招笔试题详解
可以理解为把5本书插到14本书的中间,即加头尾的15个空格里,有多少种组合.因为不能相邻,所以是有C(15, 5) = 3003 种方法 实际做的时候可以先计算C(19,5),可以在A,B中选一个,大 ...
- 2019 美团校招笔试题 外卖满减
时间限制:1秒 空间限制:65536K 你打开了美了么外卖,选择了一家店,你手里有一张满X元减10元的券,店里总共有n种菜,第i种菜一份需要A_i元,因为你不想吃太多份同一种菜,所以每种菜你最多只能点 ...
- 字节跳动2019届校招笔试题
1.世界杯开幕式会在球场C举行,球场C的球迷看台可以容纳M*N个球迷.在球场售票完成后,现官方想统计此次开幕式一共有多少个球队球迷群体,最大的球队球迷群体有多少人. 经调研发现,球迷群体在选座时有以下 ...
- 2019 小米校招笔试题 小米大礼包
小米之家是成人糖果店.里面有很多便宜,好用,好玩的产品.中秋节快到了,小米之家想给米粉们准备一些固定金额大礼包.对于给定的一个金额,需要判断能不能用不同种产品(一种产品在礼包最多出现一次)组合出来这个 ...
- 快手校招面试题 最少数量货物装箱问题
题目 链接:https://www.nowcoder.com/questionTerminal/37aa8a88a72e47f798a14d63bee61d8f?toCommentId=3433244 ...
- 2019 快手校招编程题两道解答
[编程题] 二进制中有多少个1 时间限制:1秒 空间限制:32768K 把一个32-bit整型转成二进制,其中包含多少个1,比如5的二进制表达是101,其中包含2个1 输入描述: 输入为整型(十进制) ...
- 快手校招笔试题 数字序列第n位的值
题目描述 有一个无限长的数字序列1,2,2,3,3,3,4,4,4,4,5,5,5,5,5...(数字序列从1开始递增,且数字k在该序列中正好出现k次),求第n项是多少 输入描述: 输入为一个整数n ...
- 2019 百度校招面试题
TCP/IP 三次握手 1.建立连接协议(三次握手) (1)客户 端发送一个带SYN标志的TCP报文到server.这是三次握手过程中的报文1. (2) server端回应client的,这是三次握手 ...
- C++校招常见面试题(2019年校招总结)
总结了语法.数据结构.常见排序算法.操作系统.网络五大块常见校招面试题.欢迎补充与修正. ★★语法知识★★ 一.C++与C的区别 面向对象与面向过程的区别 面向过程 面向过程编程是就分析出解决问题题的 ...
最新文章
- 【OpenCV】OpenCV中积分图函数与应用
- ubuntu 搜狗输入法成功安装
- rbf神经网络_基于RBF神经网络的监督控制(09)
- seajs 的研究二 -- 无题
- Lua 操作 MongoDB 数据库实例
- 大数据领域33个预测,开启未知的2016
- hdu 4691 Front compression
- ELK官方文档收集Kibana监视数据编辑
- 使用treesoft下的TreeNMS管理和监控redis服务器
- backupexec linux oracle,自动恢复 - 详解通过Backup Exec来实施Oracle灾难恢复_数据库技术_Linux公社-Linux系统门户网站...
- 绿坝现漏洞政府天价难护航
- 神经网络物联网未来发展趋势怎么样
- MySQL索引原理(标贝科技)
- 再也找不到理由 打扰你_伤感日志
- 剑指Offer——腾讯+360+搜狗校招笔试题+知识点总结
- PyTorch笔记【1】---A卡安装(RX580)无果后,改为N卡(2070)安装。这年头就不要用CPU了来搞AI了
- [运维] 在CentOS7系统上安装部署wok
- 浅学了一下销售订单和交货单的关系和创建(小白莫喷)
- Oracle(甲骨文)中国研发中心大规模秘密裁员
- filezilla linux 64位,FileZilla 64位
热门文章
- 老说技术更迭快,可十年到底可以淘汰多少知识?
- c语言怎样统计数组的长度,C语言指针难吗?纸老虎而已,纯干货讲解
- STM-32:ADC模数转换器—ADC单通道转换/ADC多通道转换
- android java 启用4g_[RK3399] 修改移动网络默认为4G
- 常见的4种编程范式比较
- 工业智能网关BL110应用之五十六: 实现西门子S7-200 PLC接入华为 云平台
- Vue+nodejs开发的一个处理闲置物品的校园线上交易平台
- 随笔:linux系统修改root账户名
- 【Unity 资源分享】 | Unity 精品写实动物模型+全套动画 资源分享
- 我的理想计算机英语小短文,我的理想职业英语作文(精选10篇)