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
复制
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; } }
不忘初心,相信自己,坚持下去,付诸实施。