JAVA每日练习Day003--1613072037--张铭锐
一、JavaScript 编程题
查找「sdddrtkjsfkkkasjdddj」字符串中,出现次数最多的字符和次数。
解决方式:遍历字符串,统计每个字符出现的次数,出现一次就加一。
代码如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> <script> var str = "sdddrtkjsfkkkasjdddj"; // 使用对象记录字符出现的次数,键为各个字符,值为字符出现的次数 var obj = {}; for(var i = 0; i < str.length; i++) { //获得字符 var char = str.charAt(i); //若对象已有该字符属性,值加1 if(obj[char]) { obj[char]++; } else { //第一次出现该字符,值记为1 obj[char] = 1; } } //记录出现最多次数 var max = 0; for(var key in obj) { if(obj[key] >= max) { max = obj[key]; } } //打印 for(var key in obj) { if(obj[key] == max) { console.log("出现次数最多的字符:" + key); console.log("出现次数:" + obj[key]); } } </script> </html>
运行结果如下:
二、MySQL 编程题
表名 team
要求:执行一个删除语句,当 Name 列上有相同时,只保留 ID 这列上值小的
例如:删除后的结果应如下:
请写出 SQL 语句。
DELETE
FROM team
WHERE id NOT IN
(SELECT a.id
FROM
(SELECT MIN(id) AS id
FROM team
GROUP BY name ) a)
三、Java 编程题
判断 101-200 之间有多少个素数,并输出所有素数。
解决方式:写一个函数,整除求余判断该数是否只有1和它本身为因数。
代码如下:
package test; public class Test2 { public static void main(String[] args) { int count = 0; for (int i = 101; i <= 200; i++) { int j; for (j = 2; j < i; j++) { // 如果j能被i整出在跳出循环 if (i % j == 0) { break; } } // 判断循环是否提前跳出,如果j<i说明在2~j之间,i有可整除的数 if (j >= i) { count++; System.out.print(i + "\t"); // 换行,用count计数,每五个数换行 if (count % 5 == 0) { System.out.print("\n"); } } } } }
运行结果如下:
今日总结:
虽然题目比较简单,但是锻炼的是我们的逻辑思维,比如如何对字符串进行相应的操作,以及对于素数偶数这种常见问题的解决方式。