New Coder牛客网机试题练习(二)

1、立方根的求解

题目描述

•计算一个数字的立方根,不使用库函数

详细描述:

•接口说明

原型:

public static double getCubeRoot(double input)

输入:double 待求解参数

返回值:double  输入参数的立方根,保留一位小数

 

输入描述:

待求解参数 double类型

输出描述:

输入参数的立方根 也是double类型

示例1

输入

216

输出

6.0

解答:

 

 

import java.util.*;

public class Main{
    public static void main(String []ages){
        /*
        */
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextDouble()){
            double num = sc.nextDouble();
            double x = 1.0;
            for (; Math.abs(Math.pow(x,3)-num)>1e-3; x=x-((Math.pow(x,3)-num)/(3*Math.pow(x,2))));
            System.out.println(String.format("%.1f", x));
        }
    }
}

2、最小公倍数

题目描述

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

输入描述:

输入两个正整数A和B。

输出描述:

输出A和B的最小公倍数。

示例1

输入

复制
5 7

 

复制
35

解答:最小公倍数 = 两数之积除以最大公约数

import java.util.*;

public class Main{
    public static void main(String [] args){
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
//最小公倍数 = 两数之积除以最大公约数 System.out.println(a
*b/fuc(a,b)); }
//求解最大公约数
public static int fuc(int m,int n){ if (m < n){ //利用中间变量交换mn的值 int temp = m; m = n; n = temp; } int k; while (n != 0){ //k为大数除以小数的余数,然后将小数赋予被除数,余数赋予除数,再次进行相除, //直到余数也是除数为零时,此时返回被除数 k = m % n; m = n; n = k; } return m; } }

 

posted @ 2020-05-14 10:08  Gentleman-cx  阅读(169)  评论(0编辑  收藏  举报