【每日蓝桥】5、一三年省赛Java组真题“有理数类”

举报
灰小猿 发表于 2021/05/26 15:58:43 2021/05/26
1.7k+ 0 0
【摘要】 你好呀,我是灰小猿,一个超会写bug的程序猿! 欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术! 标题:有理数类 有理数就是可以表示为两个整数的比值的数字,一般情况下,我们用近似的小数表示,但有些时候不允许出现误差,必须用两个整数来表示,这时我们可...

你好呀,我是灰小猿,一个超会写bug的程序猿!

欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术!

标题:有理数类

有理数就是可以表示为两个整数的比值的数字,一般情况下,我们用近似的小数表示,但有些时候不允许出现误差,必须用两个整数来表示,这时我们可以建立一个“有理数类”,下面的代码初步的实现了这个目标,为了简明,它只提供了加法和乘法运算。


       static class Rotional{
      		private long ra;
      		private long rb;
      		public Rotional(long a,long b) {
       			ra = a;
       			rb = b;
      			long k = gcd(ra, rb);	//获得最大公约数
      			if (k>1) {	//如果k大于1,则说明需要约分
        ra /= k;
        rb /= k;
       			}
       		}
      		/**
        * 求最大公约数
        * */
      		private long gcd(long a,long b) {
      			if (b==0) {
       return a;
       			}
       			retu
   
  

文章来源: blog.csdn.net,作者:灰小猿,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_44985880/article/details/112602785

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。