求此java基础编程题的解法要注释

有一个长度为 n(n=100)的数列,该数列定义为从 2 开始的递增有序偶数
({2,4,6,...,200}),现在要求你按照顺序每 m 个数求出一个平均值,如果最后不足 m 个,
则以实际数量求平均值。编程输出该平均值序列。
要求: m 为大于等于 3 的整数

1个回答

class Untitled {
    public static void main(String[] args) {
        int m = 3; //每次输出几个
        int n = 100; //一共多少个
        String buf = ""; //用来存放每次输出的m个数字
        int sum = 0; //计算这些数字的和
        int cnt = 0; //对有几个数字计数
        int i = 1; //从1开始(i * 2正好是2 4 6 ...)
        for (; i <= n; i++)
        {
            if (i % m == 0) //如果i除以m的余数为0,也就是i= m, 2m 3m, ...,凑够了m个,就要输出了
            {
                System.out.println(buf + String.valueOf(i * 2) + "的平均数是" + (sum + i * 2) / (float)(cnt + 1)); //平均数是sum,之前的总和,加上当前这个(i * 2),然后除以数量(数量也要+1,因为还有当前的)
                buf = ""; //把输出字符串清空,因为下次循环重新开始了
                sum = 0; //总和也清空
                cnt = 0; //计数也清空
            }
            else
            {
                buf += String.valueOf(i * 2); //将当前数字放入输出的字符串
                if (i != n) buf += ","; //如果不是最后一个,需要加上逗号
                sum += (i * 2); //总和加上当前的值
                cnt++; //计数器+1
            }
        }
        System.out.println(buf + "的平均数是" + (sum) / (float)(cnt)); //这里输出的是最后没有凑够m的剩余的
    }
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问