蓝桥杯:数字游戏

这题我做了半天也没看出来具体考的知识点是什么,综合运用也没发现具体运用什么。我自己是用for循环暴力算出来的,但是超限时80%多,看了下其他老哥的解析,他们用公式法可以正常通过。但是我有个问题就是,他们的算出来的规律都是拼出来的,看不人任何规律可言,比赛的时候感觉用等差公式去做的话有点迷哇。

这里就先记录下我的暴力算法,等后面有能力了再来看一遍这个题吧

package _12_26_test;

import java.util.Scanner;

public class eleven {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();// 人数
		int k = scanner.nextInt();// 心中数的数
		int T = scanner.nextInt();// 栋栋轮到的次数

		int re = k - 1;
		int count = 0;// 记录栋栋轮到的次数
		int dif = 0;// 记录两个数之间相差的大小
		int num = 1;// 每个人数的数
		int all = 0;// 栋栋数过的数之和

		// 根据输入的n,进行循环数数
		for (int i = 0; i < n * T; i++) {

			// 每个人心里数的数
			for (int j = 0; j < dif; j++) {
				num++;
				// 如果数到的数等于k-1,从0开始数
				if (num == re) {
					num = -1;
				}

			}

			// 每次数相差的大小加1
			dif++;

			// 栋栋轮到的次数
			if (i % n == 0) {
				count++;
				all = all + num;
			}

			if (count == n) {
				break;
			}

		}

		System.out.println(all);

	}

}

猜你喜欢

转载自www.cnblogs.com/lyd447113735/p/12677716.html