您的位置:首页 > 其它

机智的偶数求和

2015-11-12 22:30 274 查看
[align=left]Problem Description[/align]
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
 

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

 

[align=left]Output[/align]
对于每组输入数据,输出一个平均值序列,每组输出占一行。

 

[align=left]Sample Input[/align]

3 2
4 2

 

[align=left]Sample Output[/align]

3 6
3 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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: