学习打卡2,Java基础计算题

1、计算1 + 1/2 + 1/3 + ...+1/100的和。

代码如下:

public class Test12 {
	public static void main(String[] args) {
		double sum = 0;		// "如1/3"有小数,则定义为double型
		for(int i = 1;i <= 100; i++) {
			sum += 1.0 / i; 
			//注意这里必须是浮点型除除以整数为浮点数,否则"1/i"结果为1整数除整数还是整数
		}
		System.out.println("1+1/2+1/3+...+1/100=" + sum);
		//计算结果为5.187377517639621
	}
}

2、计算1/1 + 1/2+2/3+3/5+5/8+... 前100项的和。

代码如下:

public class Test {
	public static void main(String[] args) {
		double sum = 0;
		double num1 = 1.0;
		double num2 = 1.0;		//注意这三个变量必须是double型
		for(int i = 1;i <= 100; i++) {
			sum += num1 / num2;		//累加求和
			double num3 = num2;		//定义一个第三者用来存值
			num2 = num1 + num2;		//分母
			num1 = num3;
		}
		System.out.println(sum);	//结果为62.10297989966477
	}
}

3、计算2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

代码如下:

public class Test {
	public static void main(String[] args) {
		double n1 = 2.0;
		double n2 = 1.0;
		double sum = 0;
		for( int i = 1; i <= 20; i++ ) {
			sum += n1 / n2;
			double n3 = n1;    //与上一题类似
			n1 = n1 + n2;
			n2 = n3;
		}
		System.out.println(sum);    //结果为32.66026079864164
	}
}

4、计算1/1 + 1/2-2/3+3/5-5/8+... 前100项的和。

代码如下:

public class Test {
	public static void main(String[] args) {
		double sum = 1;
		double num1 = 1.0;
		double num2 = 2.0;		//注意这三个变量必须是double型
		for(int i = 2;i <= 100; i++) {
									//乘以(-1)的i次方
			sum += num1 / num2 * Math.pow(-1, i) ;		//累加求和
			double num3 = num2;		//定义一个第三者用来存值
			num2 = num1 + num2;		//分母
			num1 = num3;
		}
		System.out.println(sum);	//结果为1.422078202732382
	}
}

你可能感兴趣的:(学习)