2015 偶数求和

偶数求和

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


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
 
这个题格式控制比较巧妙,需要考虑有多少个,然后输出的时候什么时候有换行或者空格........

#include<stdio.h>
#include<math.h> 
int main()
{
    int m,n,i,j,x,s,k;
    while(~scanf("%d%d",&n,&m))
    {
        for(i=1;i<=n;i+=m)// i 标记的是第几个,
        {
            s=0;
            for(j=0;(j<m)&&(i+j<=n);++j)// j 标记的是每一组的第几个.....
            {
                s=s+(i+j)*2;
            }
            printf("%d",s/j);//每次结束。j 就是该组有多少个元素
            if(i+m<=n)//没有到最后一组就输出空格
            {
                printf(" ");
            }
        }
        printf("\n");//最后换行
    }
    return 0;
}





### 偶数求和的方法与公式 #### 数学公式的推导 对于任意一组连续的偶数 \(a_1, a_2, \dots, a_n\),其中第一个偶数为 \(a_1 = 2\),最后一个偶数为 \(a_n = 2n\)。这些偶数组成一个等差数列,首项为2,末项为\(2n\),公差为2。因此,该等差数列的求和公式可表示为: \[ S_n = \frac{n}{2} \times (\text{首项} + \text{末项}) = \frac{n}{2} \times (2 + 2n) = n(n + 1) \] 这意味着如果要计算前 \(n\) 个偶数的和,则可以通过上述简单公式快速得出结果[^1]。 #### C++ 实现代码示例 以下是基于以上理论的一个简单的C++程序用于演示如何利用循环结构来完成相同的目标: ```cpp #include <iostream> using namespace std; int main(){ int limit; cout << "请输入上限值:"; cin >> limit; long long sum =0 ; for( int i=2 ;i<=limit; i+=2 ){ sum +=i; } cout<<"小于等于"<<limit<<"的所有正偶数之和为:"<<sum<<endl; return 0; } ``` 此段代码首先提示用户输入一个整数作为范围的最大边界(limit),接着初始化累加器(sum)并设初值为零。随后进入for循环,从最小的正偶数2开始逐步增加步长直到达到或超过指定限界为止,在每次迭代过程中都将当前偶数值加入到总和当中去。最后输出所得结果[^3]。 #### Python 实现方式 另一种流行的语言Python也提供了简洁优雅的方式来处理这个问题: ```python def even_sum_upto(n): total = sum(range(2,n+1,2)) print(f'小于等于 {n} 的所有正偶数之和为:{total}') even_sum_upto(100) ``` 这里定义了一个函数`even_sum_upto`, 它接受参数n代表目标区间右端点(含)。内部调用了内置函数range生成相应间隔内的所有偶数列表并通过sum函数一次性得到它们总的合计值。最后打印出计算出来的答案[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值