#G 123【蓝桥杯第十二届国赛】

#G 123
时间限制: 5.0s 内存限制: 512.0MB 本题总分:20 分

问题描述
思路: 先定义一个数组 然后存 1  12  123 1234 12345 ... 
然后用数组下标 定义取第几个数到第几个数 然后求和

  小蓝发现了一个有趣的数列,这个数列的前几项如下:
  1,1,2,1,2,3,1,2,3,4,...
  小蓝发现,这个数列前 1 项是整数 1 ,接下来 2 项是整数 1 至 2 接下来 3 项是整数 1 至 3 接下来 4 项是整数 1 至 4 ,依次类推。
  小蓝想知道,这个数列中,连续一段的和是多少。

输入格式

  输入的第一行包含一个整数 T ,表示询问的个数。
  接下来 T 行,每行包含一组询问,其中第 i 行包含两个整数 li和 ri,表示询问数列中第 li个数到第 ri个数的和。

输出格式

  输出 T 行,每行包含一个整数表示对应询问的答案。

测试样例1
Input:
3
1 1
1 3
5 8

Output:
1
4
8


评测用例规模与约定

  对于 10 1010% 的评测用例,1 ≤ T ≤ 30 , 1 ≤ l i ≤ r i ≤ 100。
  对于 20 2020% 的评测用例,1 ≤ T ≤ 100 , 1 ≤ l i ≤ r i ≤ 1000。
  对于 40 4040% 的评测用例,1 ≤ T ≤ 1000 , 1 ≤ l i ≤ r i ≤ 10^6 。
  对于 70 7070% 的评测用例,1 ≤ T ≤ 10000 , 1 ≤ l i ≤ r i ≤ 10^9。
  对于 80 8080% 的评测用例,1 ≤ T ≤ 1000 , 1 ≤ l i ≤ r i ≤ 10^12。
  对于 90 9090% 的评测用例,1 ≤ T ≤ 10000 , 1 ≤ l i ≤ r i ≤ 10^12。
  对于所有评测用例,1 ≤ T ≤ 100000 , 1 ≤ l i ≤ r i ≤ 1 0^12。

import java.util.Arrays;
import java.util.Scanner;

public class _7_1 {
	public static void main(String[] args) {

		// 存数列
		int arr[] = new int[999];
		int k = 0;
		for (int i = 1; i < 999; i++) {// 好多数
			for (int j = 1; j <= i; j++) {// 每次从1开始
				if (k < 999) {
					arr[k] = j;
					k++;
				}
			}
		}
		//System.out.println(Arrays.toString(arr));

		// 输入T
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		// T代表几行 所以我们定义一个T行的二维数组
		int a[][] = new int[T][2];
		// 然后我们写起始位置和结束位置 就是输入 1 1 1 3 5 8的
		for (int i = 0; i < T; i++) {
			a[i][0] = sc.nextInt();
			a[i][1] = sc.nextInt();
		}

		// 然后我们取a中的位置作为arr中的下标 就是取数累加了
		// 然后我们定义一个 sum数组来累加每一行的值
		int sum[] = new int[T];
		for (int i = 0; i < T; i++) {// T行
			for (int j = a[i][0] - 1; j <= a[i][1] - 1; j++) {
				sum[i] += arr[j];
			}
		}

		for (int i = 0; i < sum.length; i++) {
			System.out.println(sum[i]);
		}
	}
}

 跑数据的话 数组调大一点应该能得部分分 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

4444l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值