星期一 整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一? (不要告诉我你不知道今天是星期几)
注意:需要提交的只是一个整数,不要填写任何多余的内容或说明文字。
import java.util.Calendar; public class Main2 { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); cal.set(2000, 11, 31); System.out.println(cal.get(Calendar.DAY_OF_WEEK) - 1); int t = 0; for (int i = 1901; i <= 2000; i++) { if (isLeap(i)) t += 366; else t += 365; } // 根据日历类可知2000年12月31日为星期天,所以t-6为星期一 t -= 6; int ans = 0; while (t > 0) { ans++; t -= 7; } System.out.println(ans); } public static boolean isLeap(int i) { return (i % 4 == 0 && i % 100 != 0) || (i % 400 == 0); } }方格计数 题目描述 如图p1.png所示,在二维平面上有无数个1x1的小方格。
我们以某个小方格的一个顶点为圆心画一个半径为 50000 的圆。 你能计算出这个圆里有多少个完整的小方格吗?
注意:需要提交的是一个整数,不要填写任何多余内容
public class Main4 { public static void main(String[] args) { int res = 0; for (int i = 1; i <= 50000; i++) { for (int j = 1; j <= 50000; j++) { if ((i * i + j * j) <= 50000 * 50000) { res++; } } } System.out.println(res * 4); } }航班时间* 【问题背景】 小h前往美国参加了蓝桥杯国际赛。小h的女朋友发现小h上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。
小h对超音速飞行感到十分恐惧。仔细观察后发现飞机的起降时间都是当地时间。由于北京和美国东部有12小时时差,故飞机总共需要14小时的飞行时间。
不久后小h的女朋友去中东交换。小h并不知道中东与北京的时差。但是小h得到了女朋友来回航班的起降时间。小h想知道女朋友的航班飞行时间是多少。
【问题描述】 对于一个可能跨时区的航班,给定来回程的起降时间。假设飞机来回飞行时间相同,求飞机的飞行时间。
【输入格式】 从标准输入读入数据。
一个输入包含多组数据。
输入第一行为一个正整数T,表示输入数据组数。
每组数据包含两行,第一行为去程的 起降 时间,第二行为回程的 起降 时间。
起降时间的格式如下
h1:m1:s1 h2:m2:s2 或 h1:m1:s1 h3:m3:s3 (+1) 或 h1:m1:s1 h4:m4:s4 (+2) 表示该航班在当地时间h1时m1分s1秒起飞,
第一种格式表示在当地时间 当日 h2时m2分s2秒降落
第二种格式表示在当地时间 次日 h3时m3分s3秒降落。
第三种格式表示在当地时间 第三天 h4时m4分s4秒降落。
对于此题目中的所有以 h : m 😒 形式给出的时间, 保证 ( 0<=h<=23, 0<=m,s<=59 ).
【输出格式】 输出到标准输出。
对于每一组数据输出一行一个时间hh:mm:ss,表示飞行时间为hh小时mm分ss秒。
注意,当时间为一位数时,要补齐前导零。如三小时四分五秒应写为03:04:05。
【样例输入】 3 17:48:19 21:57:24 11:05:18 15:14:23 17:21:07 00:31:46 (+1) 23:02:41 16:13:20 (+1) 10:19:19 20:41:24 22:19:04 16:41:09 (+1)
【样例输出】 04:09:05 12:10:39 14:22:05
【限制与约定】 保证输入时间合法,飞行时间不超过24小时。
资源约定: 峰值内存消耗(含虚拟机) < 256M CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 不要使用package语句。不要使用jdk1.7及以上版本的特性。 主类的名字必须是:Main,否则按无效代码处理。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class Main5 { static Scanner sc; static int n; public static void main(String[] args) throws ParseException { sc = new Scanner(System.in); n = sc.nextInt(); sc.nextLine();// 释放缓冲区的\n for (int i = 0; i < n; i++) { long time1 = getT(); long time2 = getT(); long res = (time1 + time2) / 2; System.out.printf("d:d:d\n", res / 3600, res / 60 % 60, res % 60); } } public static long getT() throws ParseException { String line = sc.nextLine(); String[] sp = line.split(" "); SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss"); Date t1 = format.parse(sp[0]); Date t2 = format.parse(sp[1]); // 跨天数 int d = 0; if (sp.length == 3) { d = Integer.parseInt(sp[2].substring(2, 3)); } return d * 24 * 3600 + t2.getTime() / 1000 - t1.getTime() / 1000; } }三体攻击 题目描述 【题目描述】 三体人将对地球发起攻击。为了抵御攻击,地球人派出了 A × B × C 艘战舰,在太空中排成一个 A 层 B 行 C 列的立方体。其中,第 i 层第 j 行第 k 列的战舰(记为战舰 (i, j, k))的生命值为 d(i, j, k)。
三体人将会对地球发起 m 轮“立方体攻击”,每次攻击会对一个小立方体中的所有战舰都造成相同的伤害。具体地,第 t 轮攻击用 7 个参数 lat, rat, lbt, rbt, lct, rct, ht 描述; 所有满足 i ∈ [lat, rat],j ∈ [lbt, rbt],k ∈ [lct, rct] 的战舰 (i, j, k) 会受到 ht 的伤害。如果一个战舰累计受到的总伤害超过其防御力,那么这个战舰会爆炸。
地球指挥官希望你能告诉他,第一艘爆炸的战舰是在哪一轮攻击后爆炸的。
【输入格式】 从标准输入读入数据。 第一行包括 4 个正整数 A, B, C, m; 第二行包含 A × B × C 个整数,其中第 ((i − 1)×B + (j − 1)) × C + (k − 1)+1 个数为 d(i, j, k); 第 3 到第 m + 2 行中,第 (t − 2) 行包含 7 个正整数 lat, rat, lbt, rbt, lct, rct, ht。
【输出格式】 输出到标准输出。 输出第一个爆炸的战舰是在哪一轮攻击后爆炸的。保证一定存在这样的战舰。
【样例输入】 2 2 2 3 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 2
【样例输出】 2
【样例解释】 在第 2 轮攻击后,战舰 (1,1,1) 总共受到了 2 点伤害,超出其防御力导致爆炸。
【数据约定】 对于 10% 的数据,B = C = 1; 对于 20% 的数据,C = 1; 对于 40% 的数据,A × B × C, m ≤ 10, 000; 对于 70% 的数据,A, B, C ≤ 200; 对于所有数据,A × B × C ≤ 10^6, m ≤ 10^6, 0 ≤ d(i, j, k), ht ≤ 10^9。
资源约定: 峰值内存消耗(含虚拟机) < 256M CPU消耗 < 3000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 不要使用package语句。不要使用jdk1.7及以上版本的特性。 主类的名字必须是:Main,否则按无效代码处理。
思路:暴力模拟,能拿70分 注意:((i − 1)×B + (j − 1)) × C + (k − 1)+1这条公式代入几个i,j,k可以发现第二行表示战舰的生命值(防御力)
import java.util.Scanner; public class Main6 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); int C = sc.nextInt(); int m = sc.nextInt(); int[][][] cube = new int[A + 1][B + 1][C + 1]; for (int i = 1; i <= A; i++) { for (int j = 1; j <= B; j++) { for (int k = 1; k <= C; k++) { cube[i][j][k] = sc.nextInt(); } } } for (int i = 1; i <= m; i++) { int lat = sc.nextInt(); int rat = sc.nextInt(); int lbt = sc.nextInt(); int rbt = sc.nextInt(); int lct = sc.nextInt(); int rct = sc.nextInt(); int ht = sc.nextInt(); for (int ii = lat; ii <= rat; ii++) { for (int jj = lbt; jj <= rbt; jj++) { for (int kk = lct; kk <= rct; kk++) { cube[ii][jj][kk] -= ht; if (cube[ii][jj][kk] < 0) { System.out.println(i); return; } } } } } } }全球变暖 题目描述 你有一张某海域NxN像素的照片,".“表示海洋、”#"表示陆地,如下所示:
… .##… .##… …##. …####. …###. …
其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。
由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。
例如上图中的海域未来会变成如下样子:
… … … … …#… … …
请你计算:依照科学家的预测,照片中有多少岛屿会被完全淹没。
【输入格式】 第一行包含一个整数N。 (1 <= N <= 1000) 以下N行N列代表一张海域照片。
照片保证第1行、第1列、第N行、第N列的像素都是海洋。
【输出格式】 一个整数表示答案。
【输入样例】 7 … .##… .##… …##. …####. …###. …
【输出样例】 1
资源约定: 峰值内存消耗(含虚拟机) < 256M CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 不要使用package语句。不要使用jdk1.7及以上版本的特性。 主类的名字必须是:Main,否则按无效代码处理。 思路:dfs
import java.util.Scanner; public class Main7 { static int[] dx = { -1, 1, 0, 0 }; static int[] dy = { 0, 0, -1, 1 }; static int N; static char[][] matrix; static boolean[][] vis; static int[] ans = new int[10000]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); matrix = new char[N][N]; vis = new boolean[N][N]; // 读取空格 sc.nextLine(); // 读取地图 for (int i = 0; i < N; i++) { String line = sc.nextLine(); matrix[i] = line.toCharArray(); } // 岛屿数 int num = 0; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (matrix[i][j] == '#' && !vis[i][j]) { dfs(i, j, num); num++; } } } int res = 0; for (int i = 0; i < num; i++) { if (ans[i] == 0) { res++; } } System.out.println(res); } public static void dfs(int x, int y, int num) { if (x < 0 || x >= N || y < 0 || y >= N) return; if (matrix[x][y] == '.') { return; } if (vis[x][y]) return; if (matrix[x + 1][y] != '.' && matrix[x - 1][y] != '.' && matrix[x][y - 1] != '.' && matrix[x][y + 1] != '.') { ans[num]++;// 记录没有被淹没的陆地数 } vis[x][y] = true; // 向四个方向搜索 for (int i = 0; i < 4; i++) { int xx = x + dx[i]; int yy = y + dy[i]; dfs(xx, yy, num); } } }倍数问题 【题目描述】 众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数。但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼。现在小葱给了你 n 个数,希望你从这 n 个数中找到三个数,使得这三个数的和是 K 的倍数,且这个和最大。数据保证一定有解。
【输入格式】 从标准输入读入数据。 第一行包括 2 个正整数 n, K。 第二行 n 个正整数,代表给定的 n 个数。
【输出格式】 输出到标准输出。 输出一行一个整数代表所求的和。
【样例输入】 4 3 1 2 3 4
【样例输出】 9
【样例解释】 选择2、3、4。
【数据约定】 对于 30% 的数据,n <= 100。 对于 60% 的数据,n <= 1000。 对于另外 20% 的数据,K <= 10。 对于 100% 的数据,1 <= n <= 10^5, 1 <= K <= 10^3,给定的 n 个数均不超过 10^8。
资源约定: 峰值内存消耗(含虚拟机) < 256M CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 不要使用package语句。不要使用jdk1.7及以上版本的特性。 主类的名字必须是:Main,否则按无效代码处理。 思路:暴力循环,能拿一半分数
import java.util.Arrays; import java.util.Scanner; public class Main8 { static int n; static long k; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); k = sc.nextLong(); long[] a = new long[n]; for (int i = 0; i < n; i++) { a[i] = sc.nextLong(); } Arrays.sort(a); for (int i = a.length - 1; i >= 0; i--) { for (int j = i - 1; j >= 0; j--) { for (int l = j - 1; l >= 0; l--) { if ((a[i] + a[j] + a[l]) % k == 0) { System.out.println(a[i] + a[j] + a[l]); return; } } } } } }测试次数 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。 各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。
x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。
如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。 特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。 如果到了塔的最高层第n层扔没摔坏,则耐摔指数=n
为了减少测试次数,从每个厂家抽样3部手机参加测试。
某次测试的塔高为1000层,如果我们总是采用最佳策略,在最坏的运气下最多需要测试多少次才能确定手机的耐摔指数呢?
请填写这个最多测试次数。
注意:需要填写的是一个整数,不要填写任何多余内容。
dp递推
public class Main10 { static int N = 1000; // 记录手机数为1,2,3时对应各层的测试次数 static int[] f1 = new int[N + 1]; static int[] f2 = new int[N + 1]; static int[] f3 = new int[N + 1]; public static void main(String[] args) { // 1部手机的情况 for (int i = 1; i <= N; i++) { f1[i] = i; } // 2部手机的情况 for (int i = 1; i <= N; i++) { int ans = Integer.MAX_VALUE; // 尝试1~i种方案,最终记录所有方案中次数最小的 for (int j = 1; j <= i; j++) { // 好的情况,坏的情况中测试最多的次数 int max = 1 + Math.max(f2[i - j], f1[j - 1]); ans = Math.min(max, ans); } f2[i] = ans; } // 3部手机的情况 for (int i = 1; i <= N; i++) { int ans = Integer.MAX_VALUE; // 尝试1~i种方案,最终记录所有方案中次数最小的 for (int j = 1; j <= i; j++) { // 好的情况,坏的情况中测试最多的次数 int max = 1 + Math.max(f3[i - j], f2[j - 1]); ans = Math.min(max, ans); } f3[i] = ans; } System.out.println(f3[N]); } }递增三元组 给定三个整数数组 A = [A1, A2, … AN], B = [B1, B2, … BN], C = [C1, C2, … CN], 请你统计有多少个三元组(i, j, k) 满足:
1 <= i, j, k <= NAi < Bj < Ck【输入格式】 第一行包含一个整数N。 第二行包含N个整数A1, A2, … AN。 第三行包含N个整数B1, B2, … BN。 第四行包含N个整数C1, C2, … CN。
对于30%的数据,1 <= N <= 100 对于60%的数据,1 <= N <= 1000 对于100%的数据,1 <= N <= 100000 0 <= Ai, Bi, Ci <= 100000
【输出格式】 一个整数表示答案
【输入样例】 3 1 1 1 2 2 2 3 3 3
【输出样例】 27
资源约定: 峰值内存消耗(含虚拟机) < 256M CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。 所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 不要使用package语句。不要使用jdk1.7及以上版本的特性。 主类的名字必须是:Main,否则按无效代码处理。
import java.util.Arrays; import java.util.Scanner; public class Main12 { static int n; static int[] a; static int[] b; static int[] c; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); a = new int[n]; b = new int[n]; c = new int[n]; for (int i = 0; i < n; i++) { a[i] = sc.nextInt(); } for (int i = 0; i < n; i++) { b[i] = sc.nextInt(); } for (int i = 0; i < n; i++) { c[i] = sc.nextInt(); } Arrays.sort(a); Arrays.sort(b); Arrays.sort(c); long ans = 0; int p = 0;// 寻找比bi小的范围 int q = 0;// 寻找ci小于等于bi的范围,可以求比它大的范围 // 以bi为基准,每一次结果为p*(n-q) for (int i = 0; i < n; i++) { while (p < n && a[p] < b[i]) p++; while (q < n && c[q] <= b[i]) q++; ans += (long) p * (n - q); } System.out.println(ans); } }螺旋折线
如图p1.pgn所示的螺旋折线经过平面上所有整点恰好一次。 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。
例如dis(0, 1)=3, dis(-2, -1)=9
给出整点坐标(X, Y),你能计算出dis(X, Y)吗?
【输入格式】 X和Y
对于40%的数据,-1000 <= X, Y <= 1000 对于70%的数据,-100000 <= X, Y <= 100000 对于100%的数据, -1000000000 <= X, Y <= 1000000000
【输出格式】 输出dis(X, Y)
【输入样例】 0 1
【输出样例】
3
资源约定: 峰值内存消耗(含虚拟机) < 256M CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 不要使用package语句。不要使用jdk1.7及以上版本的特性。
主类的名字必须是:Main,否则按无效代码处理。 思路:用了最原始的模拟,共19分,直接暴力模拟能得7分,网上找规律的解法看不懂
import java.util.Scanner; public class Main13 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long x = sc.nextLong(); long y = sc.nextLong(); long resx = 0; long resy = 0; long count = 0; // x向左,y向右 long DX = -1; long DY = 1; // 循环模拟,每次最多移动步数加1 for (long i = 1;; i++) { long cur = i; if (resx == x && resy == y) { System.out.println(count); return; } // x方向移动 while (cur-- != 0) { resx += DX; count++; if (resx == x && resy == y) { System.out.println(count); return; } } // 重置 cur = i; // y方向移动 while (cur-- != 0) { resy += DY; count++; if (resx == x && resy == y) { System.out.println(count); return; } } // 取反 DX = -DX; DY = -DY; } } }堆的计数 我们知道包含N个元素的堆可以看成是一棵包含N个节点的完全二叉树。 每个节点有一个权值。对于小根堆来说,父节点的权值一定小于其子节点的权值。
假设N个节点的权值分别是1~N,你能求出一共有多少种不同的小根堆吗?
例如对于N=4有如下3种:
1 / \ 2 3 / 4
1 / \ 3 2 / 4
1 / \ 2 4 / 3
由于数量可能超过整型范围,你只需要输出结果除以1000000009的余数。
输入 一个整数N。
输出 一个整数表示答案。
样例 输入 4 输出 3 提示 数据规模
对于40%的数据,1 <= N <= 1000 对于70%的数据,1 <= N <= 10000 对于100%的数据,1 <= N <= 100000
import java.util.Scanner; public class Main16 { static int mod = 1000000009; static int n; static int[] size;// 记录每个结点的size static long[] jiecheng;// 记录1~n阶乘 static long[] niyuan;// 记录1~n逆元 public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); size = new int[n + 1]; jiecheng = new long[n + 1]; niyuan = new long[n + 1]; initsize(); initjiecheng(); System.out.println(dp()); } public static long dp() { long[] d = new long[n + 1]; for (int x = n; x >= 1; x--) { // d[x]表示x号结点作为根,小根堆的种数 // 从除自己以外的集合里取左子树集合的组合总数*右子树的组合总数 if (2 * x + 1 <= n) d[x] = c(size[x] - 1, size[2 * x]) * d[2 * x] % mod * d[2 * x + 1] % mod; // 只有左子 else if (2 * x <= n) d[x] = c(size[x] - 1, size[2 * x]) * d[2 * x] % mod; // 左右子树都没有 else d[x] = 1; } return d[1]; } public static long c(int i, int j) { return jiecheng[i] * niyuan[j] % mod * niyuan[i - j] % mod; } /** * 费马小定理: x为a的逆元,满足a*x与1同余,即%mod相等 如果mod为奇数 则x=a^mod-2 */ public static void initjiecheng() { jiecheng[0] = 1; // 初始化逆元 niyuan[0] = 1; for (int i = 1; i <= n; i++) { jiecheng[i] = jiecheng[i - 1] * i % mod; niyuan[i] = pow(jiecheng[i], mod - 2); } } public static long pow(long x, int i) { if (x == 0) return 0; long b = i; long res = 1; while (b > 0) { if ((b & 1) == 1) { res = res * x % mod; } x = x * x % mod; b >>= 1; } return res; } public static void initsize() { for (int i = n; i >= 1; i--) { size[i] = (2 * i <= n ? size[2 * i] : 0) + (2 * i + 1 <= n ? size[2 * i + 1] : 0) + 1; } } }字母阵列 题目描述 仔细寻找,会发现:在下面的8x8的方阵中,隐藏着字母序列:“LANQIAO”。
SLANQIAO ZOEXCCGB MOAYWKHI BCCIPLJQ SLANQIAO RSFWFNYA XIFZVWAL COAIQNAL我们约定: 序列可以水平,垂直,或者是斜向; 并且走向不限(实际上就是有一共8种方向)。 上图中一共有4个满足要求的串。
下面有一个更大的(100x100)的字母方阵。 你能算出其中隐藏了多少个“LANQIAO”吗?
FOAIQNALWIKEGNICJWAOSXDHTHZPOLGYELORAUHOHCZIERPTOOJUITQJCFNIYYQHSBEABBQZPNGYQTCLSKZFCYWDGOAIADKLSNGJ GSOZTQKCCSDWGUWAUOZKNILGVNLMCLXQVBJENIHIVLRPVVXXFTHQUXUAVZZOFFJHYLMGTLANQIAOQQILCDCJERJASNCTLYGRMHGF TSDFYTLVIBHKLJVVJUDMKGJZGNNSTPVLCKTOFMUEUFSVQIAUVHNVFTGBDDARPKYNNCUOYUAZXQJNOEEYKLFRMOEMHUKJTPETHLES FKVINSLWEVGAGMKVFVIUBMYOIAFHLVNKNTYKTZWVXQWRWIGPENFXYDTKRVPKRTHMGHVYOCLDCKMEKRLGEKBYUCLOLYPAKPFSOREH KWPUOLOVMOFBIXYACWRDYBINTMPASPCEOKHXQIGBQQMCEOIVULIEOPFSCSIHENAJCVDPJDOIWIIULFDNOZOFVAMCABVGKAKCOZMG XWMYRTAFGFOCNHLBGNGOXPJSTWLZUNNAGIRETGXFWAQSSJPFTQAXMTQWMZWYVEPQERKSWTSCHSQOOBGXAQTBCHOEGBDVKGWJIFTG ZWWJEIISPLMXIMGHOOGDRZFTGNDDWDWMNUFWJYJGULPHNUFSAQNNIUVAAFZIAZKFXXNWCEABGJAUMGYEIEFVQXVHHHEDYUITRCQB XZHDPZQTOBECJVBZLACVXACZEDYOGVAVQRNWEOWGRAQYUEUESTEDQTYJUTEFOOITSHDDZHONJGBRCWNEQLZUTBNQIADKNFIOMWZR EBFKCVNLURZSNPOLTISRPDTNUMCDGKTYRGIOVEPTUTSBAWQKWWEUWIWHAANUZUADGZEATZOQICWFUJTWNZDBKLQNELWVTBNDLNFH PESISEATZNCDFRMXBQUKBFTIGYSFCWVHPMSUSDKPSCOMVLDOHYQVFHAJKRDTAVLIMNZBZSMLMRTLRPSLAHXDBASDMWAAYBPYVJZF SCCWYHLQOUKBMCEYENQNJXFOMOOJMTKDSHJJOHDKEGATFZHGWJJAZJROWHAZUFGEQKPYXLCAAXHHQBDALPYUDWZQHBASBBCFGQCQ ZKNXUBRYZVSPQHOVLAEUAUITMPWXNXJQVIBJVBCSVXKWFAFRPRWOLYVSDVTGGOFFMNQJZOBUDJLFHJTCYMPNOBHQJHGKLIKLZMLA POCKVEQXUAVHERIAQLGJHYOOVOMTXQFRTBFSETOZICPCHZHFBWNESVJJLSVSVOOGYYABFESWNWDNYBGBNAKRCFQMTCUMIFTESVIN JCAULIQRYUMAMAOVVWSEUTMECXSDTONRMMROQUISYEURSAYNZUVOPXLIFBDOHPXMABBLEQZGLJXQJOEYYRRRCFTEZQAOIWKRJQDL ZNUUDWZXZZURPMHGXQGNQBIQWWNERZWULSAPIBODBFFQQIHEQKCKLJYQNXQUTAAYGRBXSLLQNOQPZJEWHETQHPXJANMJFOHINWOW KJGAWWFSVIZHFNUWBLWYVPIWAEICCAHOEIWRADSLOZGPSVGPUBUUQAVYCHOIGINKYKJABWAQCZCXOBKTNJZQRHLUFKQLACAAOIWJ SIKWLXQHKDFJVGBVXWDWJKUSFRQRTDJYQMNFOQQALHRLMHSDMCFLAOVKDMTKMTPVTLAZLYJNJXZCFRHHSDIXYUUSVIMIICLUJHFW JHWUSMCFYHPIXHAPBBSHYDQCKVGQFTENLVERFVOVDCLSTQFUSEPUMTFODLZLYQXDOXAEPONIQWTDWSAWBNSZYACGSJQSHAUMIKXT MVBNFXMFNPAYSODPXEAYNRKTEZJWMUACSIUYPIORUFPMXAOZZJPJXPFLNSKNIAMETMOVULZPQIJJIRCSYQXOEVRHCNACSBRHKYNW KGKBTBHGWKVJYZCOVNSKUREKZEIWVLOHAMUAYKLUGHEUESICBZAHURNTJAECTHRNKSIJQFIPVZANSZYSPJWHPKHCAPEYWNXUYQSD RRRFYQFIQSWYRQTSNGNUFOBMSLGAFWPJGYEHGASFKTJCCZPXFIQLSXNKNWCYVTETOAPCOZJNHEWOCCAWVDEZUQCLLAVUQJJTQCKJ NMBKMUENVGXXVMQCLXPJDQIQCFWYADIFDSGINGZDJYHPUPXVRMWDIPJRWPNRYOFGYYPEAVKDEMLYRRRMNCRQXPTDSQIVKKGJWDEF SBAEKIFZCKDOMIQKBDWVQGBYWPDIBOLQUGAQRXLJDAZMXVZXYSNWEWTNZKYREMBEUHOTFOCKEJSXCMUBCKXNGQXTQJRCRCLWJTOI YXBFBIBRAAFNPKBLTSMCFERZURZNWHMOEHIHNQTBWXNPJGIDYDPRGEWACCBULJRACOFLANQIAOIHMYCNQHVKXSIGAMWAHUSNBBTD QDGPTRONXHAZWOUPNBFJFEWAMFZUQZFDKAPNJUBQPWBPYGPZHKUDZZDLCCWHGAUKJCSLLFWGPYJKJQBNLCZESOGXXSQCVVKVRVAW NXPGQOUEFLUZHHSAODIWEPZLXVQLYGVOOVCCREDJZJOMCSCFFKEIEAVCTPUZOWNOLJHGBJHJFBFFORGXOXXFOCAGBWEFCIDEKDLB PTXSUINQAJURNFQPMMSPLZTQAHCIOFJUEFFZGIHTSJNIEXQLLHRQUXXLLORJEHGQJOXSLIAVFPEJNGMMVAXDDMPXLOSTRLLFLYRM JQNCLENGTROIKDWBMXRNJYPGZRQOREPJJPTXKVVKPYYZENEOIQKZOPXAYGFXORXRIDGATHMZFDJIOIOKVDJBHSXQMYCBYFGXWHLH CITGTILGPGBHZMNWWHXEFPGDPJUVFBJKAQWACZHPRPJYCOLGZTBDCVHNRSUAJUQAWAPMQJDQIFPZQZEONWHIYKMXDZOMVETEFJRB RDOTIDCFEESOKYPYCGQQKOGPMGJRITSVTKOKDSXLRLJRRHNFRFXCMDNQMCEGZFJWHZOAFBQXXPXNBSWTSUYPAWQRHAUGLNPBRSJT HOWRIUGMOQTUYIHDWJRFBWWKWYKCICSVBVKTBIIWGFSVIFCTUKIHHUUISCOTEOYRWQXTAEBXQQOLLMOALNIYVCCHNSWIKHMYYNZO OFRIYYXPPSRTPAYMUJSSDILKIZAYSEIOLANQIAOVKARDPGVFCSYBSNHAPGTIKLAWTTKOEADWRLAACAAFYTBTNSGFTYLYUHJXBMMA NJFTMLUIBKDPWBXQOMBVQXCZOIREHRSZCSJOIVBXWQIBUTYBQNTZRVROHGOIZYAJWXLEATLOZJIKJMIHSLGSVTCXJWIOOGWSERRQ DBQJNGBLRIYFIKHBEYOZQBOAGGNIZKFDHWXCFNJLBQXVLHIQNIBZSDLTTRERHNWCMLJCVBBGGAQTPUQHIRABXPQSYGSDVMBNNDFG KPLFUYXHYGOCZPPXMWCZYNKCYBCRZVKFBHQXPGPBZFTTGEPQTJMOFHAYSQQZDMQECGXOXADYHNNXUKNBXZBYHBOULXNBJZKIZREF LVHAMSNXJOCVRPVGJUWXFVOCUCLCZDXRPBBDRLRAVVNLOZWOHWMXYSNMXAKJYWYGILNGUJGIPKAUDVANZLFWKUWWUSQYBRCBVDIJ QCXPLOTPPGXCUZOUSSTXHVMLHVMJTUSSOPLRKEBQSGWNGVHKANVZWYQHSHLIPWSYCPKTUKPMWPLVFLLAHXZQANFXHFNYHIQVIOYN ZPTJJCBHXPSUPOMNRVCKXSUFCNRCRNCPTPGIDQOEQUDFNUNMJPOEKVIMUJAJZOUKMAFSLDWYMCHTSNJYUDJAHQOIXPYSRHVAFFCR DCGMEEWXWMNOSSJNIZCINRHENPPPCYVFWYCONOPKXMFZXXIHNXIGAHAMHSBRESOETGVXWDNQLGCEOUDDJXHQIVCHRNKBFFEWILGY SOAIQNALXRBSGAQIDQVMVDKVZCPMJNXKXRXPFZAUVQPBHHQKTPDSQROLQTUGMFQRWGVEWCYPDYDZGNNNUFKJUEHJKPLIQNRQYXHU GKGWUCJXUKAEHLRLNDFUQPSJAZTVJRXWXQVBMRJXULEMJJPDCVTOWVFDBVLSBHZRRQUVMUQYKTJCLSGGHGCPHPHMWYAECLJIZUWV QQNKPQRJMSOCEAYDNKPHVEGKAGCKAPDXTGVXULHUXHJPDXCSKQTCJENVTZTMRUENCSWHBEORALSREBWAJEMQDXMRKGHJGICDHKHY YNSDSWDRLBBFUFVVICMGUCGBSVDLJNXGKXNFGVLKAVBJRRRUHKRXTPBJAKIEBAVMDIOJLIUDABCGNPNJIYBCXMOOWKRPHPYSWRDC BORWTNBISSLTVKBRTLWKRNCEDCNEGCIYJIPDICFAVNOISYAHWBLGMNFKXZYTTWJOBEPNMSJEJMHXVPGOJOLQQQVXFGEULANQIAOD OQETOJHCZXGTUKIWGMEVVMXCURISUOFQSAWZWDMZWVYHZMPEIMWKJDGERODVVUXYRTYLCRGYQQOIOFZSSZRAIESWBQOAIQNALJNR HEYWHPLLPCUEOCBAOWGAYEJZQJHLVNMVQNSQQGGUBOIMDPFLOVSQGBLYAMBRYJDVOXOQINLJAVYALAKHPKOYNKGXIISSJNGKHYMS IQVRYKXCUFIRNENEXFJTMOTJWYXSMTDHHPRHWIXETWVVIXZELKLLWRWQYGBCGJNYSUQEFCOUDNIJMLJNLAWSYJGULKBCFPYVSSMW WQHGWRQFWFOTGPBBSJBDUKOMBXNRPIMCGPGVZFADWTBVIEMVTBXVAFQDDMJALCOMZTXUFFKBQQZDFAMTFWEXTHBKNWRLUVITQXLN OPPJQKNGHWWPENVQIABJCQNKXNPWOWRFEOKQPQLANQIAORGGOLAYCEGZBHZVLPBERWYIJNJUNXKULUQOJLTNRDZDEYWEMYCHJLLB LJISOAQLXJEFXVTOZSICOLQIJEXUANJWIFSIMGUQWHBXUDWOEILYFUZTGDZDSPLZPDPXBLFAXLEFQFEPDSJQWEQMXKKHCXHMSATM UMUJENPBYKZLWAJAXJKDIYCBREBPOETQHMRHLKSEZUIPRGWIZDDQLSJAPKPBWMJMPZWLNFLFCQOCDBMLIHIYCXUJLFLPZVGWBKMY WHZJLKEWUPETVUREKVKCLBNYFLWCERVIPUDINNWGQTUHWXCTDVTMYATYUZLMVLOHKBOGIZCQDOWFBCWJAVUXYUEVRKPOXCKHAWZC RPLNLCUHJRADHJNSDPZXIKXGUKEJZCFJQASVUBSNLXCJXVCJZXGMRYRLOBCNGPDUJQVEFKMYHNZGZOAIQNALQDHTBWJXPKJLFXJY MKCEZEDAFGSOCORWJGMOKWPVVBVDYZDZHPXFWJBDELHPGOQHMBAHUUUJMGXAEKZCTQTBXNVYUIQUVZGXSKQXJWRUPSFIJDYIAORC GKFKQNXPJWOPPBTUKTHUBIROSYOVFEMJBRREWICJPCIOSTWPAUSKTRQULXPWRSXHSRYBCWYCYOTCTPFSQLDIILIGMEVZKYSOYRPH SFDSCSMLLNARCCGCBJOGZAEQTGNGSFAQIXLPDBSWZDTYVASYYPVBRFBTIAGGWONGSVKCJDBBLYKAIOXUATGMALZXFOHZFTXALCFU CUSSTLCRYPDTFSFJFENKJWTEBOBEPLSNXLALQWCKSLVMZQDJITHZKVCCQXTEXOSVAUFYAZXJUOAPPVEEWOIIMOSZZMCOQBRUXWKG PDOFSCKKJJTRYRWGLEZODQTJSIMXIAOLNMLPHBAYLPTTLPYWILSEIIQVSXNHIJEORVCNJHYXRBIZZJTADGMRTSXVRXYGVQQNUEIC IHNJOQXUXTXFPALCHOELNVMWDWQTEARUKPIFWXJSMWZLMNLAODUTKNZDYRFRLGBLIBGIBXJBOYMLYLANQIAORORYKSJPOOOAMVRN IWIUHLYJKTQGVJBDPROSRGZUFITDIBCDPICNEFIGHWGSROWBYKUCLCQYLJXLHLXSCTJWKDLHHMLDBZCVDKPXYYASHUUMUJMVSXAD GXOYXQFEBFIEJJLHBNGSYALOUXNQBXXZAAZJXENJJVVGFVHOTKSLEGLJVSJCQHSSZFEIOGBOGWSPIRENQAAWRQFBEFEXBKGMSTRC PYIANSGMNKBCDPHWDUPKICQEUDNZPNGRUJYSZIRLXGXXITAFBCANGDLVAQLDPVTJNSAUZMBBNOBBOERSHQIOLBVTSPPJKVCMXUBS IKMDIYSNCJZKJKJQMTIKEPRUNAHJUSWJHSLWIVWHYAYLOIOGSZVWKQWXZDBPHWZRAIPMXDJHBIISVJWVEVZAEGAKCYYMNZARBZPC DLDFVQDFDMVHYVOWEKMFKWUXLTPWIVKPRZZXOLMDAPAIQEKJHCHYAGJDBOFWDGNEGQGOOKWSKLTLREMGGTVJFHAIBCQKNZVRCZYS FBQASGNCCBBGNKJHCDBTGBIIWKMPHDABKEWDEPYEAVKNMPATUZZUOEHGUGAZNECSGUCIIJPMMRAMTVADMTCRJCBWDLWWFNFOWMVZ XFJFBGDAVGGAIZHAUIYENDZTRUWHPQUFWCHOXNCWYNAWVPLBLNQKQDTKQQKXNFXCTBGRWUZFHNRBDNLNKQVOLLGBBJQIYOBCEIKO CURAGWXMLYBSIZLAXFONZZMQMRNNSRQKRHQGFGZUTLONAYRKSSOWAMKZBSGOOYQDPTBHGPBNQEDCZHRTOXREOFJEKJVIZXZBCJPN KGYBZTZRKOGBETJRUWRNUCIFKIMCZGYTZLCZYGCGKVZRJIFZQIQPTCPPUHYWIXBOFFGSGSAIMNGKKUUROAVNJUQQNSWJRZIZEHAF DDAOBVCPOVODVJFLSNPJXHWQBHILWZAHQQMTQASNADZLZNXJLJMFCOUWOZJCMVVTYCKTUBABWLCEBNYWAMOLNBQQYBRUJCQCZALE TVVRPMYFIKINHIUEJBDLTCUMMUWICIUVCZNIQIUEWVAHLANQIAONMEYJWPDAFXVNOSOFDOCESSLGZPTJINBUAFWWWMPTYALZIGVD DCZGKILMBFXIQQFEKJBIUDEMIFCANVGNYZAYSQFMNNQFEPZFUUVGTBKSMDXITBLANQIAOQUKTPNYPOWSQQYWWMJHSDYVFDJYXBAF VGYXAMDRRZWVIHNQPZZWRNWBTROOJOLNUGXBILZKQEGIQSYGKZGODPWBJSCMRRWSSQURUFIAFQGEZLGZNOEQMNQEYUKPEQPPVAMO SYSFUAJFKIPUJVQSZRWQCJYAUMLDDNOKODDXIEQIFLANQIAOZFUNKUBVDBLMJOAUTVCZVLKJRQIORQPGAVCEYVNYUZHXILHERYEC GJEKWEKIJNIWUXZNVIWIAANHIOSOLATSQFSSCTAKESUTSPPYFHEHLVLIBJZEEBCOWMNHFTZMAPKFUPNFLTFFJQRVJHAKDVMGGUIX KAKXXNKSOAIQNALLWKWGVACYWBQEVTFSEUCYRORQTHWFUJFLQHONWZEKPLSNPRPBOMOFFCPMKXFZBKIERBKDYFKYUEYVYRPMOAQI WNICDLQKZXGTKDLIEFBGELGJOAIQNALXZLGGDQIBVEULDPBWUJNTYOKFBPGMAWRRUJPPIGYCNYURNOSQRIRBAZAGWWDUHAAZQWPT KFXZQXRMKSBUXWOUVVHSJWTLKZELGXMMAIDSJIWGCJPCBWZIEKMNUPUAFHTUMOZKJWVTIAQNOHELEMWGKJHKPNJVSRVHAUFXBUOU XOWCZJYQLXJRUOOYSKDLDXKWTTJBYBTLKSWRUYPOYTPBGUJXBMRWNELBWADCSZDAEEFGPVRHNNLBFDDXNPDXLKQUSJAZDEUDBMBD QIKYEKMVUHGGWZDKXFVQQNECZOAWCFUBHQMEPEPKEFSDBAYJQOSGAIHRBRAUKLQRANKMTTIOJDDXAEWTQHIYSGRRMEFTNNWCLZSI ZFUQAQCSFNVUQMKUQWBWFQIEQVVXPOSVIDTUOBLLTGHQKEMSUWWHWRISLGRDPPQPZBANSGDWXKNYTKMWECPMPDYSCJZXPUKPWGYI CNGVLBSCBHRLJARWSRENGHYYQDKRATERCPEAOPAJZUMOYIDHVPDMQPKKHCBAMRBGEIEXXJALMCXKPUGXYVINRORFYURXAMOJCBZQ YJHHAWESCLMDIHVYMLAJZQSYTDEURWYPOLJCAKIKSATGVIALBLWPPKDEGSPMRLDBQNVPPCLQXKUQLQJERMYFGAETUATEBQZUMGUN NBWUBVXYDFPLPJYLIDFVTVKKGFWMXVINLJUDUPABTSBJAJENZSXIMUJQWPEZTAVDMBBHFYTJKYFXIXQTBTTQIKQXQDPWYNMXRQDJ OGWLZQUBJJHAQNPVRGHGPNMMJPIDGANYEEDWYPOLKLNEPYSRTQYCJLSWFRJRRGGSNSDHIXYYSNAKKBWQDDGYYMOGPUXQEUSAPSOU CLLSELRVFZUFYVTJQKCQHNICMERWQFQNPVRPIIYKHZWJYJAFCLNSZXUHSPOZWQUMJHLKKYJENVZOCSWCTPYWIZONUUCLSUROGAYS AZGNIMXPLPCEPULRRBHHQOBELHJZPUQAMWUASVKDXVEWAOFMAYSJFXHCNEUXUQWUESFBRUFZQLKKWHCHKOPLECCBYSLECAEZIMMI TUUEOCEBAUKWLTSYJJPLZTIARAOZXKYYWIOXBBTZZCSAULKNEJWVQXIKUWBIWVHGNTHVBAWAVPGLHSDJDLPVHHHUNVSFKXARXLVQ EMVDFSLANQIAOPTLFLFRKGNUZCTXWCAXHECTZFHWUFENRGQICHTYLSHZWIEGLNVDJZOMTKAAUWOHVOVOCTUKOSINSAYIAEUYORNA VGPRMLCAQZIPRFQOZMEFTQZYVOTVFNVOIQSJCIPPQXQKJIXICUIGMHAJJMSXENCBQFIJHNZXIQMWACKDKQSEWWKMLOAUPFHAZGRY SQWQMRSQBGGKYKGWEZYRIHWGNXRPOUMFSFGTYDLUDWPWAVQORTMQUXWKUQVNMDPWQFIZPOIHCJATODRQGZDMQXZVNXXVEJNGWZOM PVBGZSQPCELDIWDHOQWAUHILGLPYRIICTLFSOYKQZYZOCIZPTECSWOODGGBDTSGIMYGMVPJPRPEVWOOKYFWRGXHWUCRQNYJEMSYL XWOFXFVDXPTHYTCEGMODCILAHYBREZVVHOUPZKCNHUEVPMKHUBNRPFMWXVQACVZCALZLYMZSBLCEASPMIEFOTGKMPGWYQADSNDPR QPHAVLZDZLKIEISFLLVWXAVBZLZIJRHGROUVGXRDLUJAXNHBBZYNCVERJGSKLWZEKGJBCWMSMLYIHZFFMIOGVIMZQBSRHQWAADYN MNXEGTDXCDKIUDOISQXEUJWETPELKBCYFSDNJQWNNBPYMWBUPQBAAINMYZOYCEGNLFNNHZFEMSQVXJJGWBCRAVKZFWFBKMBRVBFD HKACSZIUWUXLWKFPKOCUQJEPQDZCMUJFLVCLIOQQRVKSWFIAKNHMRLNJTKGVNTGLCVPVMBLJANOBCXUGVWBJYSIXZQVAVFWILWFB QWNLTPMCYHRSKVHXLONRANWKWXUTHYQLIOFKGDBMSWDRCYRKVSAGGRJMWQYQFLMUIGGCLAUQAACTYLPZEOJBHMWRKHCRXGTGRMUP CPQKJRBLYDNPUGHCRBVYBAIRVCAWLBWVWCMKNBIRKJOUGYQEBQRHDSTWXDIWGRVMLIJFBWHLHCDAAVUDLZSCGQNOUXVUIVIZZZMD NMHGYPFUUDWKQGTAKKGCDFJFYJFNRZVXDPGZEAMWQVQZODKTXHIYFVKJSSAWVHYCUCZMLLBPXTILDYJQEMWDRUFKISOUVPUDTYPB FDAQUBXHUJYTAYNWVIJNUSQDTQDEMUAPWXRYUWONTBDZCHZOUEGPMWEZTQWWSHAYOBWVTDIMZYNVNZKUHOFCQKPHJXWNRCGUJEKO WSDAUGUTVWCVHEMOIRJJGTANUWTSAIXXEVZTBDHPGSRHHVWCDZVZYRJTLONIJVXEATHQXOUKBIGZONFRSZIOGWNTYAJYLQCGEOWY请提交一个整数,不要填写任何多余的内容。
import java.util.Scanner; public class Main19 { static int n = 100; static char[][] c; static int[] dx = { -1, 1, 0, 0, -1, 1, -1, 1 }; static int[] dy = { 0, 0, -1, 1, -1, -1, 1, 1 }; static int ans = 0; static char[] tar = { 'L', 'A', 'N', 'Q', 'I', 'A', 'O' }; public static void main(String[] args) { Scanner sc = new Scanner(System.in); c = new char[n][n]; for (int i = 0; i < n; i++) { c[i] = sc.nextLine().toCharArray(); } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (c[i][j] == 'L') { for (int d = 0; d < 8; d++) { int x = i + dx[d]; int y = j + dy[d]; if (x >= 0 && x < n && y >= 0 && y < n) { dfs(x, y, 1, d); } } } } } System.out.println(ans); } public static void dfs(int x, int y, int i, int d) { if (c[x][y] != tar[i]) return; if (i == 6) { ans++; return; } int xx = x + dx[d]; int yy = y + dy[d]; if (xx >= 0 && xx < n && yy >= 0 && yy < n) { dfs(xx, yy, i + 1, d); } } }第几个幸运数 题目描述 到x星球旅行的游客都被发给一个整数,作为游客编号。 x星的国王有个怪癖,他只喜欢数字3,5和7。 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。
我们来看前10个幸运数字是: 3 5 7 9 15 21 25 27 35 45 因而第11个幸运数字是:49
小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。
请你帮小明计算一下,59084709587505是第几个幸运数字。
需要提交的是一个整数,请不要填写任何多余内容。
import java.util.TreeSet; public class Main20 { static TreeSet<Long> set = new TreeSet<>(); static long Max = 59084709587505L; public static void main(String[] args) { int[] a = { 3, 5, 7 }; long t = 1L; while (true) { for (int i = 0; i < 3; i++) { long tt = t * a[i]; if (tt <= Max) { set.add(tt); } } // 寻找集合中比t稍微大的数 t = set.higher(t); if (t >= Max) break; } System.out.println(set.size()); } }缩位求和 题目描述 在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确。 比如:248 * 15 = 3720 把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得 2 + 4 + 8 = 14 ==> 1 + 4 = 5; 1 + 5 = 6 5 * 6 而结果逐位求和为 3 5 * 6 的结果逐位求和与3符合,说明正确的可能性很大!!(不能排除错误)
请你写一个计算机程序,对给定的字符串逐位求和: 输入为一个由数字组成的串,表示n位数(n<1000); 输出为一位数,表示反复逐位求和的结果。
例如: 输入: 35379
程序应该输出: 9
再例如: 输入: 7583676109608471656473500295825
程序应该输出: 1
资源约定: 峰值内存消耗(含虚拟机) < 256M CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 不要使用package语句。不要使用jdk1.7及以上版本的特性。 主类的名字必须是:Main,否则按无效代码处理。
import java.util.Scanner; public class Main21 { static String s; public static void main(String[] args) { Scanner sc = new Scanner(System.in); s = sc.next(); while (true) { int sum = 0; if (s.length() == 1) { break; } for (int i = 0; i < s.length(); i++) { sum = sum + (int) (s.charAt(i) - '0'); } s = sum + ""; } System.out.println(s); } } 本题目要求你在控制台输出一个由数字组成的等腰三角形。 具体的步骤是: 1. 先用1,2,3,...的自然数拼一个足够长的串 2. 用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。 比如,当三角形高度是8时: 1 2 1 3 8 4 1 5 7 6 1 7 6 891011121314151 显示不正确时,参看:p1.png 输入,一个正整数n(3<n<300),表示三角形的高度 输出,用数字填充的等腰三角形。 为了便于测评,我们要求空格一律用"."代替。 例如: 输入: 5 程序应该输出: ....1 ...2.1 ..3...2 .4.....1 567891011 再例如: 输入: 10 程序应该输出: .........1 ........2.2 .......3...2 ......4.....2 .....5.......1 ....6.........2 ...7...........0 ..8.............2 .9...............9 1011121314151617181 再例如: 输入: 15 程序应该输出: ..............1 .............2.3 ............3...2 ...........4.....3 ..........5.......1 .........6.........3 ........7...........0 .......8.............3 ......9...............9 .....1.................2 ....0...................8 ...1.....................2 ..1.......................7 .1.........................2 21314151617181920212223242526 资源约定: 峰值内存消耗(含虚拟机) < 256M CPU消耗 < 1000ms 请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。 所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 不要使用package语句。不要使用jdk1.7及以上版本的特性。 主类的名字必须是:Main,否则按无效代码处理。 import java.util.Scanner; public class Main22 { static int n; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); // int count=(n+n-1)+(n+n-1-2); int count = 4 * (n - 1);// 字符总数 String str = ""; int k = 1; while (true) { if (str.length() > count) break; str += k; k++; } int index = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n + i; j++) { // 最后一行 if (i == n - 1) { // 右边指针已到达上一个count-i,现在i又多1,所以应该是count-i+1 System.out.println(str.substring(index, count - i + 1)); break; } else if (j == n - i - 1) { System.out.print(str.charAt(index++)); } else if (j == n - 1 + i) { System.out.print(str.charAt(count - i)); } else System.out.print("."); } System.out.println(); } } }小朋友崇拜圈 班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己)。 在一个游戏中,需要小朋友坐一个圈, 每个小朋友都有自己最崇拜的小朋友在他的右手边。 求满足条件的圈最大多少人?
小朋友编号为1,2,3,…N
输入 输入第一行,一个整数N(3<N<100000) 接下来一行N个整数,由空格分开。
输出 要求输出一个整数,表示满足条件的最大圈的人数。
样例 输入复制 9 3 4 2 5 3 8 4 6 9 输出复制 4 输入复制 30 22 28 16 6 27 21 30 1 29 10 9 14 24 11 7 2 8 5 26 4 12 3 25 18 20 19 23 17 13 15 输出复制 16 提示 样例解释 如图所示,崇拜关系用箭头表示,红色表示不在圈中。 显然,最大圈是[2 4 5 3] 构成的圈
import java.util.Scanner; public class Main23 { static int n; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); int[] a = new int[n + 1]; for (int i = 1; i <= n; i++) { a[i] = sc.nextInt(); } int max = 0; for (int i = 1; i <= n; i++) { int cnt = 0; // 状态数组 boolean[] flag = new boolean[n + 1]; // 如果当前没标记过 if (flag[i] == false) { int j = 0; // 将当前小朋友崇拜对象为新的下标 for (j = i; flag[j] == false; j = a[j]) { flag[j] = true; cnt++; } // 崇拜到不了第一个小朋友,不能形成环,需要重置 if (a[j] != a[i]) cnt = 0; max = Math.max(max, cnt); } } System.out.println(max); } }