用Java实现以下算法:有n个收藏夹初始值都是0,每次操作如果输入0则把第xi个收藏夹的值改为yi,如果为1则输出第xi到第yi个收藏夹的总和。 输入: 第一行两个整数n和操作次数m 第二行m个整数代表操作输入op 第三行m个整数表示xi 第四行m个整数表示yi 输出: 对于每个op=1的情况输出一个答案
时间: 2023-11-28 10:51:07 浏览: 75
以下是使用Java实现的代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int[] favorites = new int[n];
for (int i = 0; i < m; i++) {
int op = scanner.nextInt();
int x = scanner.nextInt() - 1;
int y = scanner.nextInt();
if (op == 0) {
favorites[x] = y;
} else {
int sum = 0;
for (int j = x; j < y; j++) {
sum += favorites[j];
}
System.out.println(sum);
}
}
}
}
```
首先读入收藏夹的数量n和操作次数m,然后创建一个长度为n的整型数组favorites来存储各个收藏夹的值。
接下来循环m次,每次读入一个操作op、一个收藏夹编号x和一个值y。如果op为0,则将第x个收藏夹的值改为y;如果op为1,则计算第x到第y-1个收藏夹的总和,并输出结果。
注意,由于题目中的收藏夹编号从1开始,因此在读入收藏夹编号时需要将其减1。
阅读全文