【编程素养-每日一练】20190731(Day003)

一、JavaScript 编程题
(1)题干:
查找「sdddrtkjsfkkkasjdddj」字符串中,出现次数最多的字符和次数。

(2)代码展示:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>day003</title>
    </head>
    <body>
    </body>
    <script>
        var str = "sdddrtkjsfkkkasjdddj";
        // 使用对象记录字符出现的次数  key-字符 value-出现次数
        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("'sdddrtkjsfkkkasjdddj'中出现次数最多的字符:" + key);
                console.log("出现次数:" + obj[key]);
            }
        }
    </script>
</html>

(3)运行截图
【编程素养-每日一练】20190731(Day003)
二、MySQL 编程题
(1)题干:
表名 team

ID Name
1 a
2 b
3 b
4 a
5 c
6 c

要求:执行一个删除语句,当 Name 列上有相同时,只保留 ID 这列上值小的
例如:删除后的结果应如下:

ID Name
1 a
2 b
5 c

(2)代码展示:

DELETE FROM team WHERE id NOT IN 
(SELECT a.id FROM(SELECT MIN(id) AS id FROM team GROUP BY name)a)

(3)运行截图
【编程素养-每日一练】20190731(Day003)
(4)可能遇到的问题
如下的SQL语句感觉正确,

DELETE FROM team WHERE id NOT IN 
(SELECT MIN(id) AS id FROM team GROUP BY name)

但是MySQL运行会报错。

[Err] 1093 - You can't specify target table 'team' for update in FROM clause

意思是:不能对进行查询操作的表进行update操作,也就说我们的where条件中进行了子查询,并且子查询也是针对需要进行update操作的表的,mysql不支持这种查询修改的方式。

三、Java 编程题
(1)题干:
判断 101-200 之间有多少个素数,并输出所有素数。

(2)代码展示:

package day003;

public class Test { 
	
	public static void main(String[] args) {
		//素数:除了1和自身外,无法被其他自然数整除的数
		int count = 0; //存放素数数量 
		//双层for循环
        for (int i = 101; i <= 200; i++) {
            int j;
            for (j = 2; j < i; j++) {
                // 如果j能被i整除,跳出循环,i++
                if (i % j == 0) {
                    break;
                }
            }
            // 判断循环是否提前跳出,如果j<i,则i不是素数
            if (j >= i) {
                count++;
                System.out.print(i + "\t");
                // 换行,用count计数,每五个数换行
                if (count % 5 == 0) {
                    System.out.print("\n");
                }
            }
        }
        System.out.print("\n101-200之间素数的个数为:"+count); 
	} 
}

(3)运行截图
【编程素养-每日一练】20190731(Day003)

上一篇:转:在alu10年的感受


下一篇:Setup best practices for Agile Scrum in your organization