• 2019.7.25锻炼逻辑思维9道题。


    1.在calDate()的基础之上添加 计算当前日期的是星期几的功能
    注:设定1900年1月1日为周一

    2判断101-200之间有多少个素数,并输出所有素数。

    3.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

    4.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
    程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
    (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
    (2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
    (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

    5.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

    6.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

    7.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

    8.计算用户输入的数字的阶乘,例如用户输入的是5,则计算5的阶乘,5的阶乘为 5*4*3*2*1

    9.定义一个函数,返回1+1/3+1/5+1/7+....1/n的和

    <button onclick="one()">年份</button>
    <button onclick="two()">素数</button>
    <button onclick="three()">水仙花数</button>
    <button onclick="four()">质因数</button>
    <button onclick="five()">叠加</button>
    <button onclick="six()">桃子</button>
    <button onclick="seven()">年龄</button>
    <button onclick="eight()">阶乘</button>
    <button onclick="nine()">加法</button>
    <script type="text/javascript">
    // 1.在calDate()的基础之上添加 计算当前日期的是星期几的功能
    // 注:设定1900年1月1日为周一
    function one() {
    //输入年月日;
    var year = Number(prompt('请输入年:'));
    var month = Number(prompt('请输入月:'));
    var days = Number(prompt('请输入天:'));
    //先给闰年赋一个值
    var isRun = (year%4==0 && year%100!=0)||year%400 ==0;
    var totals=0;
    // 循环变量
    var i = 1;
    while(i<month){//当前月的前面一共有多少天
    switch (i) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    totals +=31;
    break;
    case 2:
    // 根据年份判断二月的天数,isRun用在这里
    if(isRun){
    totals +=29;
    }else{
    totals +=28;
    }
    break;
    case 4:
    case 6:
    case 9:
    case 11:
    totals += 30;
    break;
    }
    i++;
    }
    // 累积加上当前月的天数
    totals += days;
    console.log('今天是'+ year+"年的第"+ totals +"天");

    // 累积计算,从1900年到year-1年,共多少天
    for(var j = 1900;j<year;j++){
    // 判断j年是否为闰年
    if((j%4==0 && j%100!=0)||j%400==0){
    totals +=366;
    }else{
    totals +=365;
    }
    }
    console.log('从1900年到现在一共'+totals+"天");
    // 计算 是星期几
    var week = totals % 7;
    var msg = "星期";
    switch (week) {
    case 0:
    msg +="日";
    break;
    case 1:
    msg +="一";
    break;
    case 2:
    msg +="二";
    break;
    case 3:
    msg +="三";
    break;
    case 4:
    msg +="四";
    break;
    case 5:
    msg +="五";
    break;
    case 6:
    msg +="六";
    break;
    }
    console.log('今天是'+ year+"年的第"+ days +"天,是"+msg);
    }

    function two(){
    //2判断101-200之间有多少个素数,并输出所有素数。
    var num;
    //给个数,让这个数在101到200之间,开始验证素数
    for(num = 101;num <201;num++){
    //count是开关,避免重复输出num
    var count = 0;
    //记得给i赋值
    var i;
    //素数是除1和本身以外不能被整除的数
    for(i = 2;i < num;i++){
    if (num % i ==0) {
    count += 1
    //count加上1.则跳出,反正已经不是素数了,不必浪费内存
    break;
    }
    }
    if(count == 0){
    console.log('素数有:' + num);
    }
    }
    }

    function three(){
    //3.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
    var num;
    //输的范围
    for(num = 100;num < 1000;num++){
    //百位
    var a = parseInt(num / 100);
    //十位
    var b = parseInt((num % 100)/10);
    //个位
    var c = parseInt(num % 10);
    //水仙花数的条件
    if(num == a*a*a+b*b*b+c*c*c){
    console.log('100~1000中水仙花数有' + num);
    }
    }
    }


    function four(){
    // 4.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
    // 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
    // (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
    // (2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

    // 1.输入数据 n
    var n = prompt("请输入一个正整数:");
    // 将这个n 去取最小质数 k (2---n)的余数
    var msg = n+"=";
    for(var k = 2;k<=n;k++){
    // 90%2 == 0 2是90的质因数
    while(n%k == 0 && n !=k ){
    // 打印出k
    console.log(k);
    msg += (k + "*");
    // 将n除以k的商(结果),作为新的正整数赋值给n
    n = n/k;
    }
    if(k == n){
    msg +=n;
    }
    }
    console.log(msg);
    }


    function five(){
    // 5.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
    /*首先列个数演算,得出num和n的规律
    2 10*n + 2=2 n=0
    22 10*n + 2=22 n=2
    222 10*n + 2=222 n=22
    2222 10*n + 2=2222 n=222
    */
    //输入数字和所叠加的个数
    var num = Number(prompt("请输入一个数字:"));
    var count = Number(prompt("请输入叠加的个数"))
    // 记录和的变量,初始都为0,以便存取
    var sum = 0;
    var n = 0 ;
    var i;
    for(var i =1;i<=count;i++){
    // n记录每一个加数
    n = n*10 + num;
    console.log(n);
    sum += n;
    }
    console.log(n + '个' + num + '的叠加的和为' + sum);
    }

    function six(){
    // 6.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
    //第一天和第十天
    var one;
    var ten = 1;
    var i;
    //中间吃了九天,所以加九次
    for(i = 1;i <= 9;i++){
    //每次与前一天的数值交换
    one = (ten + 1) * 2;
    ten = one;
    }
    console.log('一共摘了' + one + '个');
    }


    function seven(){
    // 7.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,
    // 他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,
    // 说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
    //赋值第一个人的年龄,第五个人。
    var one = 10;
    var five;
    var i;
    //每个人都比前一个小两岁,循环四次
    for(i = 1;i <= 4;i++){
    five = one + 2;
    one = five;
    }
    //输出第五个人年龄
    console.log('第五个人的年龄为' + five);
    }
    // 8.计算用户输入的数字的阶乘,例如用户输入的是5,则计算5的阶乘,
    // 5的阶乘为 5*4*3*2*1
    function eight(){
    //从1开始乘起
    var x = 1;
    var n = prompt('请输入一个数字:');
    var i;
    //循环n次,每次后的值都为前两个数的乘。
    for(i = 1;i <= n;i++){
    x *= i;
    }
    console.log('这个数的阶乘是' + x);
    }

    // 9.定义一个函数,返回1+1/3+1/5+1/7+....1/n的和
    function nine(){
    //定义一个数字和 sum,n 为想要加到1/n,不然无限加下去是没结果的。
    var sum = 0,n = prompt('请输入一个正奇数:');
    var i;
    // sum数字和的值邓毅前面两次的和,而且都是奇数。
    for(i = 1; i <= n;i += 2){
    sum += 1/i
    }
    //输出
    console.log('从1加到1/n的值为' + sum);
    }
    </script>

  • 相关阅读:
    此查询使用的不是 ANSI 外部联接运算符
    centos重启命令
    updatePanel 加载完成后回调JS
    建站推荐十个免费的CMS内容管理系统(Php+mysql)
    [转]最值得拥有的免费Bootstrap后台管理模板
    Got a packet bigger than 'max_allowed_packet' bytes”
    ECshop商城程序常见的96个小问题汇总
    linux 命令
    mysql 存储过程
    千万级记录的Discuz论坛导致MySQL CPU 100%的优化笔记
  • 原文地址:https://www.cnblogs.com/awei313558147/p/11246272.html
Copyright © 2020-2023  润新知