Java-解决这个累加问题 -- 自评

题目描述

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

输入

输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。

输出

对于每组输入数据,输出一个平均值序列,每组输出占一行

 

 

因为不知道他要输入多少组数据  所以我们需要用java中的 输入判断语句来写个循环 他不等于死循环 嘻嘻嘻嘻

那个判断语句就是  sc.Next()   这个是判定它输入的是否是字符串...写了和没写一样  所以说 它还有其他分支    sc.NextInt() 等等.... 当然第一个( sc.NextInt() )  是判断输入的是否是 Int 类型。
所以说我们可以用这个形式:

 

解题代码如下: (非官方答案 自己写的 成功)

请认真看注释!!!!!!

 

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {           //首先我们不知道他要输入多少组 所以给它个输入判断
            int n = in.nextInt(), m = in.nextInt();  //输入 n 和 m 分别代表 多少个数 和 每多少个数为一小组 类似二维数组
            int sum = 0, av = 0;        //sum用来累加值 av 用来 累加 累加值
            for (int i = 0; i < (n / m); i++) {     //循环 n/m 次  即几组
                av = 0;                             //每次循环前让他的累加累加值等于 0
                for (int j = 0; j < m; j++) {
                    sum += 2;                       //!!!!!自评就在这里!!! 你要知道你是要累加全部值 然后用他来求出平均值,所以他是不会变的!
                    av += sum;                      //每一次累加值 都要累加起来  这就是自己累加的弱点!BUG!
                }
                if (i == 0)                         //这里是打印格式的 自己调整
                    System.out.printf("%d", av / m);
                else System.out.printf(" %d", av / m);
            }
            if ((n % m) != 0) {                             //如果n%m不是0  那么就有余,剩下的余就求他们的平均值
                av = 0;
                for (int i = 0; i < (n % m); i++) {           //有多少个余 那就循环多少次累加
                    sum += 2;                               //累加值
                    av += sum;                                 //累加值的值
                }
                System.out.println(" " + av / (n % m));         //最后输出!!!

            }
        }
    }
}

自评就是累加那里!!!!!!!!!!! 记住了 是累加全部变化的值  也可以去参考  博文“求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。 例如:2+22+222+2222+22222(n=5),n由键盘输入,而a由程序设定为2。”这个里面就是!!!

细节是  每次循环之前 av 都要清0 !!

 

posted @ 2020-11-17 18:23  咸瑜  阅读(133)  评论(0编辑  收藏  举报