首页 > 编程语言 >NIT-2022JAVA W1-6-1 分数

NIT-2022JAVA W1-6-1 分数

时间:2023-03-07 15:13:50浏览次数:44  
标签:分数 return W1 int System 2022JAVA Fraction println NIT

题目

设计一个表示分数的类 Fraction。这个类用两个 int 类型的变量分别表示分子和分母。注意,在创建和做完运算后应该化简分数为最简形式。如 2/4 应该被化简为 1/2。

函数接口定义:
这个类的构造函数是:

Fraction(int a, int b)

构造一个 a/b 的分数。

这个类要提供以下的功能:

double toDouble();

将分数转换为 double

Fraction plus(Fraction r);

将自己的分数和 r 的分数相加,产生一个新的 Fraction 的对象。

Fraction multiply(Fraction r);

将自己的分数和 r 的分数相乘,产生一个新的 Fraction 的对象。

String toString();

将自己以“分子/分母”的形式产生一个字符串。如果分数是 1/1,应该输出"1"。当分子大于分母时,不需要提出整数部分,即"31/30"是一个正确的输出。

裁判测试程序样例:

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Fraction a = new Fraction(in.nextInt(), in.nextInt());
        Fraction b = new Fraction(in.nextInt(), in.nextInt());
        System.out.println(a);
        System.out.println(b);
        System.out.println(a.plus(b));
        System.out.println(a.multiply(b).plus(new Fraction(5,6)));
        System.out.println(a);
        System.out.println(b);
        System.out.println(a.toDouble());
        in.close();
    }
}

/* 请在这里填写答案 */

注意,你的类的定义应该这样开始:

class Fraction {

也就是说,在你的类的 class 前面不要有 public。

输入样例:

2 4 1 3

输出样例:

1/2
1/3
5/6
1
1/2
1/3
0.5

解答

/**
 * Created by IntelliJ IDEA.
 *
 * @author Long Yan
 * @version 2022/9/6
 */
class Fraction {
    int a, b;

    public Fraction(int a, int b) {
        this.a = a;
        this.b = b;
    }

    @Override
    public String toString() {
        int temp = gcd(this.a, this.b);
        this.a /= temp;
        this.b /= temp;
        if (this.a == this.b) return "1";
        else if (this.a < 0 && this.b > 0) return "-" + (-1) * this.a + "/" + this.b;
        else if (this.a > 0 && this.b < 0) return "-" + this.a + "/" + (-1) * this.b;

        return this.a + "/" + this.b;
    }

    int gcd(int a, int b) {
        return a % b == 0 ? b : gcd(b, a % b);
    }

    double toDouble() {
        return 1.0 * a / b;
    }

    Fraction plus(Fraction r) {
        Fraction m = new Fraction(0, 0);
        m.a = r.a * b + a * r.b;
        m.b = r.b * b;
        return m;
    }

    Fraction multiply(Fraction r) {
        Fraction m = new Fraction(0, 0);
        m.a = r.a * a;
        m.b = r.b * b;
        return m;
    }
}

标签:分数,return,W1,int,System,2022JAVA,Fraction,println,NIT
From: https://www.cnblogs.com/bellongyan/p/NIT-2022JAVA_W1-6-1.html

相关文章

  • 春秋云镜-【仿真场景】Initial writeup
    开启靶机后是一个带着ThinkPHPicon的登陆界面,直接测试一下存在5.0.23RCE打一下,PHP-7.4.3的环境,看一下disable_functionspcntl_alarm,pcntl_fork,pcntl_waitpid,pcnt......
  • python-unittest(部分笔记)
    自带的单元测试框架:创建一个类,必须继承单元测试用例的类——(unittest.TestCase)单元测试的两部分: ①代码级别的功能验证          ②逻辑覆盖单元测试框架......
  • 【MRTK】解决 Unity.IL2CPP.Building.BuilderFailedException: Lump_libil2cpp_vm.cpp
    前言最近在部署HoloLens应用的时候遇到了这个报错,无论是本地部署、远程部署、还是导出APPX项目包,都会遇到这个问题从而导致生成错误我在中文平台搜索没有找到答案,于......
  • JUnit4基本使用
    JUnit4的配置和基本使用配置1.从网上下载jar包,导入Eclipse中从maven仓库中下载,官网https://mvnrepository.com/artifact/junit/junit导入Eclipse中,导入流程右键项目......
  • # JUnit4的配置和基本使用
     ##配置###1.从网上下载jar包,导入Eclipse中-从maven仓库中下载,官网https://mvnrepository.com/artifact/junit/junit-导入Eclipse中,导入流程右键项目-----BuildPa......
  • JUnit4基本使用
    JUnit4的配置和基本使用配置1.从网上下载jar包,导入Eclipse中从maven仓库中下载,官网https://mvnrepository.com/artifact/junit/junit导入Eclipse中,导入流程右键项目......
  • Unity开发时,在visual studio编辑器中没有中文注释的解决办法
    在做Unity开发的时候,会遇到很多标准库或.Net库里的一些函数都没有注释,但是用VS单独创建一个WinForms桌面类型的程序,里面调用的都是有中文注释的。下面是步骤:使用VS创建......
  • error: ‘for’ loop initial declarations are only allowed in C99 mode
    最近在编译Zabbix6的时候报错,解决方案记录下。实际上在官方文档中也有说明 3Installationfromsources(zabbix.com) 在./configure之前设置一个环境变量即可编译......
  • Unity package manager 字体乱码
     具体原因是升级Mac系统导致,暂行方案是Playersettings取消勾选AutoGraphicsAPIforMac,改为优先使用OpenGLCore,重启编辑器就好了......
  • EBS fnd_global.apps_initialize的使用
    在pl/sql中模拟ebs环境,其目的主要在于解除pvd对视图或者同义词的限制条件能够显示出数据库内容,所以先得初始化环境变量方法如下:fnd_global.apps_initialize(user_ID,Resp......