0.前言

之前做编程题,有一个部分需要判断一个分数是否为无限循环小数,挺有意思,特此整理记录如下:

问题描述(大概意思是)
已知分子a和分母b ,判断 分数a/b是否为无限循环小数

1.已知结论

将分数化为最简分数后,分母的全部因数(除去1和其自身)没有为2或5以外的数,则该分数就不是无限循环小数;否则为无限循环小数。

首先我们看 1/n的实际含义:将 1 分成n份,每一份的大小

那么10/n的实际含义:将 10 分成n份,每一份的大小

对于将 10 分成n份这个话题,如果假设每份必须为整数,那么n的取值(去掉1或者10),只能是2或5

最简分数是否为无限循环小数,与分子没有关系。

2.问题解决

2.1求分子分母的最大公约数

此处可用辗转相除法求最大公约数

2.2 判断最简分数的分母的因子

此处可直接将分母分别整除以多次2和5即可

3.代码实现

import java.util.Scanner;
/*** @Title:InfiniteLoop.java* @author Stone6762* @CreationTime 2018年6月12日 下午10:18:39* @Description: 判断一个分数是否为无限循环小数*/
public class InfiniteLoop {/*** @Title greatestCommonDivisor* @Describe求最大公约数* @param a* @param b* @return*/public static long greatestCommonDivisor(long a, long b) {long c = 0;while (true) {// 循环的辗转相除法c = a % b;a = b;b = c;if (b == 0) {return a;}}}/*** @Title isLoop* @Describe a/b是否为无限循环小数* @param a分子* @param b分母* @return*/public static boolean isLoop(long a, long b) {// 1.化简,分子分母同时除以最大公约数long commonDivisor = greatestCommonDivisor(a, b);b = b / commonDivisor;// 2.判断分母是否为2的次幂,5的次幂,或者2 5结合// 首先让其除以2的次幂while (b % 2 == 0) {b /= 2;}// 然后让其除以5的次幂while (b % 5 == 0) {b /= 5;}// 最后判断是否为1,如果为1 说明没有 2或者5或者2和5结合构成 以外的因子if (b == 1) {return false;} else {return true;}}public static void main(String[] args) {Scanner scan = new Scanner(System.in);while (scan.hasNext()) {int a = scan.nextInt();int b = scan.nextInt();System.out.println( a+"/"+b+"的结果是否为无限循环小数:   " + isLoop(a, b));}}
}

判断分数是否为无限循环小数相关推荐

  1. 判断一个分数是否为无限循环小数

    #include <stdio.h>int main() {int remiander[101] = {0};//存放余数int quotient[101] = {0};int m;int ...

  2. 无限循环小数化为分数

    前几天被一个小朋友的问题难住了,是怎样将无限循环小数化为分数.当时听到这个问题的时候,第一反应是:这个学过啊,但是自己一点印象都没有啊,在这么多人面前,自己还是个研究生,太丢人了吧.还好小朋友比较给面 ...

  3. 把无限循环小数化为分数

    把无限循环小数化为分数 给定一个无限循环小数,我们是否能把它化为分数呢?其实方法也很简单,其关键在于利用「无限循环」这一点.例如,给定小数0.272727...,如何把它化为分数呢?我们可以先把它写成 ...

  4. python判断循环小数_python如果一个数是为无限循环小数,返回分数格式,否则返回小数格式...

    1.读题 2.思考 一个最简分数,分母如果只包含2和5的因数就可以化成有限小数.如果含有2和5以外的因数就只能化成无限循环小数. 例如:1/2,1/8,1/20,5/32,9/40就可以化成有限小数. ...

  5. 有限小数用c语言,分数化为有限小数或无限循环小数(c实现)

    问题描述: 将分数转化为小数,相信很多人都会吧.那么,这里给定一个分数N/D,N为分子,D为分母(N,D均为整数),试编程求出N/D的小数形式,当然如果这个小数为无限循环小数,则把循环的部分用括号括起 ...

  6. 如何将无限循环小数转化为分数

    无限循环小数也是有理数,而有理数是能表示为两个整数之比的数.如何将无限循环小数转化成分数? 以 0.148257148257... 0.148257148257...为例. 它的循环部分为: 1482 ...

  7. 无限循环小数化分数、

    循环小数分为混循环小数.纯循环小数两大类. 混循环小数可以*10^n(n为小数点后非循环位数),所以循环小数化为分数都可以最终通过纯循环小数来转化. 等比数列法编辑 无限循环小数,先找其循环节(即循环 ...

  8. 如何将无限循环小数转换为分数

    将一个无限循环小数转换为分数 例如: 32.5632323232......... 1.设x=32.5632323232......... 则 y=x*10000 y=325632.32323232. ...

  9. 无限循环小数转化分数

    问题 给出一个无限循环小数以及循环节,求原最简分数,例如输入 5.3 1 表示从小数点后一位开始循环,也就是循环小数是5.33333-.. 输出结果是 16/3 分析 其实一个简单的数学结论就可以解决 ...

  10. 无限循环小数POJ1930

    题意:给定一个无限循环小数,求其分数形势,要求分母最小 分析:看了别人的题解才做出来的,将无限循环小数转化成分数,分为纯循环和混循环两种形式. (1)对于纯循环:用9做分母,有多少个循环数就几个9,比 ...

最新文章

  1. 最最基本的Git入门 -- 本地仓库操作
  2. C语言 · 计算时间
  3. 成功解决pillow模块内生成的非UTF-8格式(比如label中有汉字时)
  4. 【Grafana】函数
  5. 2、MyEclipse和Eclipse调优,MyEclipse配置(tomcat和jdk的内存设置),jar引入相关知识点,将Java项目编程web项目的办法
  6. CAS Client 3.2.1 配置详解
  7. opencv批量灰度转换_OpenCV图像处理之常见的图像灰度变换
  8. 计算机网络网络层之层次路由
  9. SFB 项目经验-44-别以为Hyper-V比VMware差太多(仅个人观点,不喜误喷,谢谢)
  10. Keras ImageDataGenerator参数
  11. XXX集团财务决策支持系统——现有系统功能(系列三)
  12. 如何将电脑图片缩小kb?图片怎么压缩大小?
  13. python 操作excel笔记
  14. 百度AI 开放平台 - 各大AI 开放平台开放能力解读和分析,技术的应用场景,技术前景
  15. 常见的常微分方程的一般解法
  16. 三星oneui主屏幕费电_三星最新力作,第三方桌面无处遁形,OneUI越来越自由
  17. 多任务学习时转角遇到Bandit老虎机
  18. 长度短点的uuid_如何压缩UUID长度?
  19. SCI论文从入门到精通——IEEE论文那些事儿
  20. 音质好的蓝牙耳机推荐哪款?佩戴舒适的四款蓝牙耳机盘点

热门文章

  1. 基于javaweb+JSP+Servlet宿舍管理系统(超级管理员、宿舍管理员、学生)
  2. 计算机管理创建超级用户,win10系统怎么创建超级管理员账户
  3. SkeyeVSS综合安防监控Onvif、RTSP、GB28181视频云解决方案之服务器系统硬件资源管理
  4. java通过freemarker导出包含富文本图片的word文档
  5. 13_大数据之数据可视化_note
  6. 影响我一生的两本书(02)_huadingjin_新浪博客
  7. 【谷歌地图--PlacesSDK集成】
  8. java调用腾讯企业邮箱给谷歌(gmail)邮箱发送邮件丢失或进入垃圾邮箱
  9. Linux - send 出现 Resource temporarily unavailable
  10. 计算机老是重启进不了桌面,电脑无限重启进不桌面