
很巧妙的思维题
用数字表示
直接全加成零就得了
有点像减法的借位
#include <iostream>
using namespace std;
int arr[120] = {0};
int main()
{
int N, sum = 0, step = 0;
cin>>N;
for(int i = 0; i < N; i++)
{
cin>>arr[i];
sum += arr[i];
}
int avr = sum / N;
for(int i = 0; i < N; i++)
{
arr[i] = arr[i] - avr;
}
/*for(int i = 0; i < N; i++)
cout<<arr[i]<<' ';*/
for(int i = 0; i < N; i++)
{
if(arr[i] != 0)
{
arr[i + 1] = arr[i + 1] + arr[i];
arr[i] = 0;
step ++;
}
}
cout<<step<<endl;
return 0;
}
本文探讨了一道有趣的算法题目,通过调整数组元素使总和为零,采用类似于减法借位的方法实现。代码示例使用C++编写,展示了如何通过遍历数组计算平均值,并据此调整每个元素以达到目标总和。
720

被折叠的 条评论
为什么被折叠?



