杭電2015題 偶數求和
阿新 • • 發佈:2018-12-09
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
思路:
1、先取值,再進行迴圈
2、迴圈前考慮設定變數標記空格,sum總值的歸0,和單值的增加
3、最後考慮不足m個時,如何處理
注:每次設定變數時,思考變數的作用域
#include <stdio.h> int main() { int n, m; while(scanf("%d%d", &n, &m) != EOF) { int sum=0, ai=2, count=0, i; //sum表示每m個數的總值,ai表示遞增偶數,count用來標記列印空格 for(i=1; i<=n; i++) //長度為n,表示迴圈n次; { sum += ai; ai += 2; if( i % m == 0) //表示每m個數 { count++; if(count != 1) //表示輸出第2個值後,開始列印空格 printf(" "); printf("%d", sum / m); //列印平均值 sum = 0; } } if(n % m == 0) printf("\n"); else printf(" %d\n", sum / (n % m)); //最後不足m個,實際數量求m值。注意輸出列印%d前一定要加個" %d" } return 0; }