题意整理
- 输入任意多个正整数。
- 输出它们的平均数。
方法一(循环)
1.解题思路
- 定义一个计数变量cnt和一个累加和变量sum,分别用于记录整数个数,以及它们的累加和。
- 使用一个循环进行模拟输入,如果是负数,则终止循环。每轮循环,计数加一,并且累加和加上对应数字,最后将累加和与计数的商作为平均数输出。
动图展示:
2.代码实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//标准输入
Scanner scan = new Scanner(System.in);
//计数
int cnt=0;
//记录平均数
double avg=0;
//记录累加和
double sum=0;
while(scan.hasNext()){
int num=scan.nextInt();
//如果小于0,直接终止循环
if(num<0){
break;
}
//累加和加上对应num
sum+=num;
//计数加一
cnt++;
}
//计算平均数
avg=sum/cnt;
System.out.println(String.format("%.2f",avg));
}
}
3.复杂度分析
- 时间复杂度:假设输入了n个正整数,则需要循环n次,所以时间复杂度为。
- 空间复杂度:需要额外常数级别的空间,所以空间复杂度为。