zoukankan      html  css  js  c++  java
  • 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 !!

    本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/13995670.html

  • 相关阅读:
    BP神经网络算法学习
    《SAS编程与数据挖掘商业案例》学习笔记之十六
    leetcode:Best Time to Buy and Sell Stock II
    ASP.NET Web Pages:WebMail 帮助器
    ASP.NET Web Pages:Chart 帮助器
    ASP.NET Web Pages:WebGrid 帮助器
    ASP.NET Web Pages:帮助器
    ASP.NET Web Pages:文件
    ASP.NET Web Pages:对象
    ASP.NET Web Pages:表单
  • 原文地址:https://www.cnblogs.com/bi-hu/p/13995670.html
Copyright © 2011-2022 走看看