赞一个:
- /*题目:编写一个函数,
- * 输入n为偶数时,调用函数求1/2+1/4+...+1/n,
- * 当输入n为奇数时,调用函数1/1+1/3+...+1/n。
- * 将输出结果保留到至少8个小数点。
- * ---------------------------------------------
- * 注:①未做验证处理。②未做BigDecimal处理。
- * */
- public class Test03 {
- public static void main(String[] args) {
- int no = 16;
- int precise = 8;
- String result = func(no, precise);
- System.out.println(result);
- }
- /**
- * 输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n。 指定精度结果。
- *
- * @param no
- * 给定的整数
- * @param precise
- * 给定的精度(小数点后的位数,8~16位)
- * @return 字符串形式的结果。
- *
- */
- public static String func(int no, int precise) {
- double sum = 0;
- if (no % 2 == 0) {
- for (int i = 1; i < no / 2 + 1; i++) {
- sum += 1.0 * 1 / (2 * i);
- // System.out.println(sum);
- }
- } else {
- for (int i = 1; i <= no / 2 + 1; i++) {
- sum += 1.0 * 1 / (2 * i - 1);
- // System.out.println(sum);
- }
- }
- String s = String.valueOf(sum);
- String result = s.substring(0, s.indexOf(".") + precise + 1);
- return result;
- }
- }
复制代码 |