携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情
关于Java循环的方法,我们有三种,for,while,do while.在适当的情况下要选择合适的方法,才能使代码更简洁,方法更高效。
第一个例子:f(n) = 1 - 1/2 + 1/3 - ... + 1/n
思路分析:(1)本题有明确的范围,我们在这里使用for循环。 (2)题目上是加一个再减一个,我们可以理解为加一个正数再加一个负数,这样来写代码。
代码实现:
Scanner in = new Scanner(system.in);
int n = in.nextInt();
double sum =0.0;
int num = 1;
for (int i=1;i<=n;i++){
num += num*1.0/i;
num =-num;
}
System.out.println(sum);
System.out.printf("%.2f",sum);
代码详解: 首先我们输入一个n的数,int n = in.nextInt(); 我们首先定义一个num=1,然后执行完一轮后再把num反转num=-num;这样就可以达到加一个正数再加一个负数的效果。我们也可以用另外一种思路,我们可以用if else 方法,if(i%2 == 1){ sum += 1.0/i;}else{sum-= 1.0/i};在处理方式上面我们可以有很多种方法,只要积极开拓思路,可以有很多种方法来实现。
第二个例子:输入两个数,求两个数的最大公约数并输出。思路分析:最先我们想到依次列举,从2开始一个个凑数,各个开始除,这样就能得出公约数。用循环来挨个整除,每次存储最后一个能够整除的数。
代码实现:
int a = in.nextInt();
int b = in.nextInt();
int ys = 1;
for (int i = 2; i<=a && i<=b;i++){
if( a % i == && b % i==0){
ys=i;
}
System.out.println(a+"和"+b+"最大的公约数是"+ys);
代码详解:我们先设i=2,在a,b都能被i整除时,我们记录下i的值,i再加1再次循环,直到i等于a和b其中一个,那么结束循环,这个数就是a,b的最大公约数。这就是枚举,我们一个个计算,比较麻烦,计算次数太多,还可以用其他方法,大家可以思考一下。