输入为两行,第一行为一个正整数 n,表示进行了 n 轮疏果操作,1<=n<20; 第二行为 n+1 个整数,第一个整数 t 表示初始苹果数(0<t<1000),其后 n 个整数为 0 或负 整数(每个整数绝对值不超过 100),0 表示本轮没有去掉苹果,负整数的绝对值表示本轮去 掉的苹果数。整数之间用空格分隔。 输出:输出最后剩余苹果数量和疏果最多的轮次(从 1 开始计数)
时间: 2023-02-06 09:57:58 浏览: 225
输入:
3
10 -5 0 -10
输出:
5 3
算法思路:
1. 首先读入 n 和 t。
2. 循环 n 次,每次读入一个数,如果这个数是 0,则不对苹果数量进行改变;如果这个数是负数,则减去这个数的绝对值。
3. 在每一轮操作后,判断是否是疏果最多的轮次,如果是,则更新疏果最多的轮次。
4. 输出最后剩余的苹果数量和疏果最多的轮次。
代码实现:
相关问题
输入为两行,第一行为一个正整数 n,表示进行了 n 轮疏果操作,1<=n<20; 第二行为 n+1 个整数,第一个整数 t 表示初始苹果数(0<t<1000),其后 n 个整数为 0 或负 整数(每个整数绝对值不超过 100),0 表示本轮没有去掉苹果,负整数的绝对值表示本轮去 掉的苹果数。整数之间用空格分隔。 输出:输出最后剩余苹果数量和疏果最多的轮次(从 1 开始计数)C语言
#include <stdio.h>
int main()
{
int n, t;
scanf("%d%d", &n, &t);
int max_round = 1, max_apples = t; // 疏果最多的轮次和最多的苹果数
int round = 1; // 当前轮次
while (n--)
{
int num;
scanf("%d", &num);
t += num; // 更新剩余苹果数量
if (t > max_apples) // 更新疏果最多的轮次
{
max_apples = t;
max_round = round;
}
round++;
}
printf("%d %d\n", t, max_round);
return 0;
}
阅读全文