首页 > 其他 > 详细

[hdu 2015] 偶数求和

时间:2014-04-07 13:57:41      阅读:397      评论:0      收藏:0      [点我收藏+]

偶数求和

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 42605    Accepted Submission(s): 18618


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

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

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

Sample Input
3 2 4 2
 

Sample Output
3 6 3 7

分析:

数列:2,4,6,8,10,12,14,16,18,20,22,24 …… 2n

每 m 个数求出一个平均值,即求这 m 个数中的“第一个数和最后一个数的平均值”

假设 q = n /m ; r = n % m ;(q = 1,2,3,4 ……   ;  r = 0,1,2,3 ……   ;即数列可分成 q 组余 r 个数) 则:

m 个数一组的时候:

第一个数:2 * [ ( q -1) * m + 1 ]       最后一个数:2 * q * m       平均值:2 * q * m - m + 1

最后不足 m 个数的时候:

第一个数:2 * [ ( q -1) * m + 1 ]      最后一个数:2 * [ ( q -1) * m + r ]         平均值:2 * q * m - 2 * m + r + 1

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		while (scanner.hasNext()) {
			int n = scanner.nextInt();
			int m = scanner.nextInt();

			int q = n / m;
			int r = n % m;

			int i = 1;
			for (; i <= q; i++) {
				System.out.print(2 * i * m - m + 1);
				if (i != q) {
					System.out.print(" ");
				}
			}
			if (r != 0) {
				System.out.print(" " + (2 * (i) * m - 2 * m + r + 1));
			}
			System.out.println();
		}
	}
}

[hdu 2015] 偶数求和,布布扣,bubuko.com

[hdu 2015] 偶数求和

原文:http://blog.csdn.net/u011506951/article/details/23084193

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!