题目描述:
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
输入:
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
输出:
对于每组输入数据,输出一个平均值序列,每组输出占一行
样例输入:
3 2
4 2
样例输出:
3 6
3 7
解题思路:
我们可以先求出需要计算的组数(即n/m)和不足m个时剩余的个数(即n%m),后续通过简单的for循环套用就可以算出答案
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
int m = sc.nextInt();
int a = n%m;
int k = 2;
for(int i=1;i<=n/m;i++)
{
int sum=0;
for(int j=1;j<=m;j++)
{
sum+=k;
k+=2;
}
System.out.print(sum/m+" ");
}
int s=0;
if(a==0) break;
for(int i=1;i<=a;i++)
{
s+=k;
k+=2;
}
System.out.println(s/a+" ");
}
}
}