1.解题思路:
当最大的那块电池大于等于其他的电池电量之和时,
最长使用时间就是其他电池之和。
剩下一种就是 sum/2。
2.代码展示
#include<iostream>
using namespace std;
int main()
{
int num;
double sum;
double battery;
double battery_max;
while (scanf("%d", &num) != EOF)
{
sum = 0;
battery_max = -1;
for (int i = 0; i < num; i++)
{
cin >> battery;
sum += battery;//电池电量总和
battery_max = max(battery_max, battery);//找出最大值
}
if (battery_max >= sum / 2)
{
printf("%.1lf\n", (sum - battery_max));//第一种情况
}
else
{
printf("%.1lf\n", sum / 2);//第二种情况
}
}
}
3.运行结果截图