1. Java的开方和次方运算
java.lang.Math.sqrt(double a) 返回一个数字a的正平方根,返回结果是double型 java.lang.Math.pow(double a, double b) 返回一个数字a的b次方,返回结果是double型 有意思的是, 我们也可以通过Math.pow()实现开方运算,但是此时一定要注意第二个参数使用double型
//java.lang.Math.sqrt(double a) 返回一个数字a的正平方根,返回结果是double型
System.out.println(Math.sqrt(10)); //3.1622776601683795
System.out.println(Math.sqrt(25)); //5.0
System.out.println(Math.sqrt(49)); //7.0
//java.lang.Math.pow(double a, double b) 返回一个数字a的b次方,返回结果是double型
System.out.println(Math.pow(2, 3)); //8.0
System.out.println(Math.pow(3, 2)); //9.0
//有意思的是, 我们也可以通过Math.pow()实现开方运算
System.out.println(Math.pow(27, 1/3)); //1.0
System.out.println(Math.pow(27, 1.0/3)); //3.0
System.out.println(Math.pow(49, 1.0/2)); //7.0
//可以看到计算开方运算时一定要注意第二个参数使用double型, 否则 1 / 3 在java中结果是0, 27的0次方的结果自然是1.0了。 当第二个参数使用1.0 / 3时可以看到27开三次方的结果是3.0
可以看到使用Math.pow()进行开方运算时一定要注意第二个参数使用double型, 否则 1 / 3 在java中结果是0, 27的0次方的结果自然是1.0了。 当第二个参数使用1.0 / 3时可以看到27开三次方的结果是3.0
2. 下面是用到Math.sqrt()方法的求解有多少种连续正整数之和为N的经典算法的详细解析(Leetcode 829, Lintcode 1439)
*以下内容转载并改编自https://www.cnblogs.com/grandyang/p/11595236.html*
Given a positive integer `N`, how many ways can we write it as a sum of consecutive positive integers?
Example 1:
Input: 5
Output: 2
Explanation: 5 = 5 = 2 + 3
Example 2:
Input: 9
Output: 3
Explanation: 9 = 9 = 4 + 5 = 2 + 3 + 4
Example 3:
Input: 15
Output: 4
Explanation: 15 = 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5
Note: 1 |