机智的偶数求和

来源:互联网 发布:我老婆是网络女主播 编辑:程序博客网 时间:2024/05/01 02:05

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

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

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

Sample Input
3 24 2
 

Sample Output
3 63 7




#include <iostream>

using namespace std;
int main(void)
{
int n;
int x,d;
int s,q,h,z,a;
while(scanf("%d%d",&n,&x) !=EOF)
{
q=0;z=x;d=0;
for(int i=0;i<n/x;i++)
{
s=z*z+z;
h=(s-q)/x;
q=s;
z=z+x;
            if(d) {cout<<" ";}
d=1;
cout<<h;
}
if((n%x)>0){
a=n*n+n;
h=(a-s)/(n%x);
if(d) {cout<<" ";}
cout<<h;}
cout<<endl;
}
return 0;

}



以下是大神代码


#include <iostream>
using namespace std;
int main(void)
{
    int i, n, m, b, c;
    while (scanf("%d%d", &n, &m) != EOF)
    {
        b = 2;
        c = 0;
        for (i = 0 ; i < n / m ; i++)
        {
            printf(c++ ? " %d" : "%d", b + m - 1);
            b += m * 2;
        }
        printf(n % m ? " %d\n" : "\n", b + n % m - 1);
    }


    return 0;
}


0 0
原创粉丝点击