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

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

输入:

输入数据包含两个正整数n和m,n表示数列的长度,m表示按顺序求平均值的子序列长度。

输出:

输出这组数据的平均值序列。

输入样例:

4 2

输出样例:

3 7

 

 #include<iostream >
 using namespace std;
int main()
 {  int m,n,i,j,k=0,t=0;
   int a[100];
cin>>n>>m;
for(i=0;i<n;i++)
	a[i]=2*(i+1);
for(i=0;i<n/m;i++)
	{for(j=0;j<m;j++)
	{	t=t+a[m*i+j];
}
cout<<t/m<<" ";
t=0;}
 
if(n%m!=0) 
{
	{for(i=0;i<n%m;i++)
	k=k+a[n-n%m+i];}
cout<<k/m;
}
}


未验证

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 题目描述: 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值编程输出平均值序列。 解题思路: 首先,我们需要生成这个数列。由于这个数列是从2开始的递增有序偶数,所以我们可以用一个循环来生成这个数列。然后,我们需要按照顺序每m个数求出一个平均值。我们可以用一个循环来实现这个功能。最后,我们需要输出这个平均值序列。 代码实现: #include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; int sum = , cnt = ; for (int i = 2; i <= 2 * n; i += 2) { sum += i; cnt++; if (cnt == m) { cout << sum / m << " "; sum = ; cnt = ; } } if (cnt > ) { cout << sum / cnt << " "; } return ; } ### 回答2: 这道题可以直接使用循环来实现。 首先,可以用一个变量sum来表示当前需要求平均值的一段数列的总和,初始为0。然后,再用一个变量count表示当前已经加入sum中的数的个数,初始为0。接下来,从2开始循环遍历整个序列,每次往sum中加入一个数,并将count加1,直到count达到m为止,此时计算出当前的平均值,并将其输出。然后,重置sum和count的,并继续循环,直到遍历完整个序列。 需要注意的是,如果序列最后不足m个数,则不能再计算平均值了,直接将剩下的数相加求和后再除以实际数量即可。 下面是具体的代码实现: ```python n = int(input('请输入序列长度n:')) m = int(input('请输入每m个数求平均值:')) sum = 0 count = 0 result = [] for i in range(2, n+1, 2): sum += i count += 1 if count == m: avg = sum / m result.append(avg) sum = 0 count = 0 # 处理剩余的数 if count > 0: avg = sum / count result.append(avg) print(result) ``` 这样,就能得到按照顺序每m个数求出一个平均值的结果序列了。 ### 回答3: 题目分析: 题目要求我们对一个递增有序偶数数列求出按照顺序每m个数平均值。首先,我们需要从2开始构造这个数列,然后对每m个数求平均值。如果最后不足m个,则以实际数量求平均值。 这道题我们可以采用循环来解决。首先,我们需要输入n和m,然后我们可以使用一个while循环来构造这个数列。由于这个数列从2开始,公差为2,所以我们可以从2开始,每次加2,直到数列长度为n为止。接着,我们可以另设一个循环来对每m个数求平均值。当平均值个数不足m个时,我们可以直接求实际数量平均值。 代码如下: ```python n = int(input("请输入数列长度n:")) m = int(input("请输入每m个数求平均值:")) num_list = [] #定义数列 for i in range(2, 2*n, 2): num_list.append(i) #构造数列 avg_list = [] #定义平均数序列 sum_num = 0 #初始化每m个数的和 count = 0 #初始化计数器 for i in range(n): sum_num += num_list[i] #每m个数求和 count += 1 #计数器加1 if count == m: #如果计数器等于m avg_list.append(sum_num/m) #将平均数添加到平均数序列中 sum_num = 0 #将每m个数的和初始化为0 count = 0 #将计数器初始化为0 if count > 0: #如果最后剩余的数的数量小于m avg_list.append(sum_num/count) #求出实际数量平均值 print(avg_list) #输出平均值序列 ``` 对于输入样例:n=10,m=3,运行结果如下: ``` 请输入数列长度n:10 请输入每m个数求平均值:3 [3.0, 9.0, 15.0, 21.0] ``` 运行结果符合要求输出了从每3个数求出平均值序列。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值