Java循环可除性和与平均
我已经做了一个循环,产生了数字1,2,3,…,的总和和平均值,上限为100。我遇到的问题是修改当前代码,使其只包含7的倍数。以下是我所拥有的:Java循环可除性和与平均,java,eclipse,loops,Java,Eclipse,Loops,我已经做了一个循环,产生了数字1,2,3,…,的总和和平均值,上限为100。我遇到的问题是修改当前代码,使其只包含7的倍数。以下是我所拥有的: public class SumAndAverageForLoop { public void SumAndAverageForLoop() { double sum = 0; for (double i = 1; i <=100; i++) sum+= i; System.out.
public class SumAndAverageForLoop {
public void SumAndAverageForLoop() {
double sum = 0;
for (double i = 1; i <=100; i++) sum+= i;
System.out.println ("the average is " + sum/100);
System.out.println ("the sum is " + sum);
}
}
公共类SumAndAverageForLoop{
public void SumAndAverageForLoop(){
双和=0;
对于(double i=1;i为了确定一个数字是否可以被7整除,你应该使用模除法运算符%,并将余数与0进行比较
int sum = 0;
int count = 0;
for (int i = 0; i <= 100; i++) {
if (i % 7 == 0) {
sum += i;
count++;
}
}
System.out.println("the average is " + sum/count);
System.out.println("the sum is " + sum);
对于每个迭代,for循环应该以7的增量递增,并且还应该保持迭代次数,因为需要它来找到平均值
int sum = 0;
int count = 0;
int average = 0;
for(int i=7; i<=100; i=i+7)
{
sum = sum + i;
count= count+1;
average = sum/count;
}
int和=0;
整数计数=0;
整数平均=0;
对于(inti=7;i我将在这个用例中使用模运算符
public class SumAndAverageForLoop {
public void SumAndAverageForLoop() {
double sum = 0;
for (double i = 1; i <=100; i++){
if((i % 7) == 0){
sum+= i;
}
System.out.println ("the average is " + sum/100);
System.out.println ("the sum is " + sum);
}
}
公共类SumAndAverageForLoop{
public void SumAndAverageForLoop(){
双和=0;
对于Java 8中的(double i=1;i),现在无需编写易于出错的循环结构即可轻松实现,如下所示:
IntStream.range(0,100).filter(i -> i % 7 == 0).summaryStatistics();
结果:
IntSummaryStatistics{count=15, sum=735, min=0, average=49.000000, max=98}
就像参考一样-你是想把7的倍数加起来求平均数/和,还是另外求7的倍数?例如,你的数字应该是7,14,21,28…?如果是这样的话,你只需要在for循环中输入i=7,i+=7。修改for循环不是更有效,而不是通过任何方式循环每个数字吗?你当然可以增加每次迭代的ent i为7,这将导致更少的计算,但是在这种简单的情况下,我不认为效率是一个问题。我认为问题的根源是如何确定一个数字是否可以被另一个数字整除,答案是(a%b==0)我认为展示这个解决方案会为问题的海报提供一些他们普遍认为有用的东西。OP试图避免为此编写一个类。
IntSummaryStatistics{count=15, sum=735, min=0, average=49.000000, max=98}