1 条题解
-
0
思路分析
1. 任务拆解:
- 读取银币个数n
- 读取n个银币金额并计算总金额
- 计算银币金额的平均值
- 找出与平均值差值最小的银币
- 输出最接近平均值的银币金额
2. 关键点分析:
- 需要先计算平均值,再比较每个银币与平均值的接近程度
- 使用绝对值函数abs来计算差值,不考虑正负
- 需要记录最小差值对应的银币位置
- 初始化最小差值min为一个较大的数
3. 步骤规划: 第一步:读取银币个数n 第二步:循环读取银币金额并累加总金额 第三步:计算平均值pj 第四步:遍历数组,计算每个银币与平均值的绝对差值 第五步:找出最小差值对应的银币位置 第六步:输出该银币的金额
4. 代码对应:
cin>>n:读取银币个数- 第一个
for循环:输入金额并计算总和s pj=s*1.0/n:计算平均值min=99999:初始化最小差值- 第二个
for循环:计算每个金额与平均值的绝对差值 abs(a[i]-pj):计算绝对差值if(c<min):更新最小差值和对应位置cout<<a[mini]:输出最接近平均值的金额
- 1
信息
- ID
- 648
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 601
- 已通过
- 200
- 上传者