zoukankan      html  css  js  c++  java
  • 分数——mooc《面向对象程序设计——Java语言》-(浙大翁凯)第一周编程题

    题目内容:

    设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。

    这个类的构造函数是:

    Fraction(int a, int b)

        构造一个a/b的分数。

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

    double toDouble();

        将分数转换为double

    Fraction plus(Fraction r);

        将自己的分数和r的分数相加,产生一个新的Fraction的对象。注意小学四年级学过两个分数如何相加的哈。

    Fraction multiply(Fraction r);

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

    void print();

        将自己以“分子/分母”的形式输出到标准输出,并带有回车换行。如果分数是1/1,应该输出1。当分子大于分母时,不需要提出整数部分,即31/30是一个正确的输出。

    注意,在创建和做完运算后应该化简分数为最简形式。如2/4应该被化简为1/2。

    你写的类要和以下的代码放在一起,并请勿修改这个代码:

    import java.util.Scanner;

    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());

    a.print();

    b.print();

    a.plus(b).print();

    a.multiply(b).plus(new Fraction(5,6)).print();

    a.print();

    b.print();

    in.close();

    }

    }

     

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

    class Fraction {

     

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

    输入格式:

    程序运行时会得到四个数字,分别构成两个分数,依次是分子和分母。

    输出格式:

    输出一些算式。这些输入和输出都是由Main类的代码完成的,你的代码不要做输入和输出。

    输入样例:

    2 4 1 3

    输出样例:

    1/2

    1/3

    5/6

    1

    1/2

    1/3

    时间限制:500ms内存限制:32000kb
     
    代码实现:
    import java.util.Scanner;
    
    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());
            a.print();
            b.print();
            a.plus(b).print();
            a.multiply(b).plus(new Fraction(5,6)).print();
            a.print();
            b.print();
            in.close();
        }
    
    }
    /*
     * 设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。
    这个类的构造函数是:
    
    Fraction(int a, int b)
        构造一个a/b的分数。
    
    这个类要提供以下的功能:
    
    double toDouble();
        将分数转换为double
    Fraction plus(Fraction r);
        将自己的分数和r的分数相加,产生一个新的Fraction的对象。注意小学四年级学过两个分数如何相加的哈。
    Fraction multiply(Fraction r);
        将自己的分数和r的分数相乘,产生一个新的Fraction的对象。
    void print();
        将自己以“分子/分母”的形式输出到标准输出,并带有回车换行。如果分数是1/1,应该输出1。当分子大于分母时,不需要提出整数部分,即31/30是一个正确的输出。
    
    注意,在创建和做完运算后应该化简分数为最简形式。如2/4应该被化简为1/2。
     */
    class Fraction
    {
        int fenzi;
        int fenmu;
        Fraction(int a,int b)
        {
            this.fenzi=a;
            this.fenmu=b;
        }
        
        double toDouble() 
        {
            return (double)fenzi/fenmu;
        }
        
        Fraction plus(Fraction r) 
        {
            Fraction temp=new Fraction(0,0);
            temp.fenzi=fenzi*r.fenmu+r.fenzi*fenmu;
            temp.fenmu=fenmu*r.fenmu;
            return temp;
        }
        
        Fraction multiply(Fraction r) 
        {
            Fraction temp=new Fraction(0,0);
            temp.fenzi=fenzi*r.fenzi;
            temp.fenmu=fenmu*r.fenmu;
            return temp;
        }
        
        void print() 
        {
            if(fenzi==fenmu) 
            {
                System.out.println(1);
            }
            else 
            {
                int n;
                int m=0;
                //将分子分母中较大的值赋给n
                if(fenzi>fenmu) 
                {
                    n=fenzi;
                }
                else
                    n=fenmu;
                //遍历,对分子分母进行化简
                for(int i=1;i<=n;i++) 
                {
                    if(fenzi%i==0&&fenmu%i==0) 
                    {
                        m=i;
                    }
                }
                //提取公因子,化简
                fenzi=fenzi/m;
                fenmu=fenmu/m;
                System.out.println(fenzi+"/"+fenmu);
            }
        }
    }
     
    吾生也有涯,而知也无涯
  • 相关阅读:
    input不可编辑
    span width无效
    react配置rem解决移动端适配问题
    iframe 根据内容自适应高度-终极解决方案
    页面导入样式时,使用link和@import有什么区别?
    怎么让Chrome支持小于12px 的文字?
    React Hook 父子组件相互调用方法
    CSS3实现毛玻璃效果
    React阻止组件渲染
    JSX 中内联条件渲染的方法
  • 原文地址:https://www.cnblogs.com/daimasanjiaomao/p/11009985.html
Copyright © 2011-2022 走看看