zoukankan      html  css  js  c++  java
  • 一些编程题,记录

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>title</title>
    </head>
    <body>
    <img src="" onclick="prev()" alt="">
    <script>
        /*
        * 一、    实现 fizzBuzz 函数,参数 num 与返回值的关系如下:
        *        1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz
        *        2、如果 num 能被 3 整除,返回字符串 fizz
        *        3、如果 num 能被 5 整除,返回字符串 buzz
        *        4、如果参数为空或者不是 Number 类型,返回 false
        *        5、其余情况,返回参数 num
        *
        *
      //
    
        function fizzbuzz(num) {
            if (num===null  || typeof num!=='number') {
                return false
            } else if (num % 3 === 0 && num % 5 === 0) {
                return 'fizzbuzz'
            } else if (num % 3 === 0) {
                return 'fizz'
            } else if (num % 5 === 0) {
                return 'buzz'
            } else {
                return num
            }
        }
    
        console.log(fizzbuzz(' '))
        */
        /*
        * 二、给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
        * 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
        * 示例:
        * 给定
        *  nums = [2, 7, 11, 15],
        *  target = 9因为 nums[0] + nums[1] = 2 + 7 = 9
        * 所以返回 [0, 1]
        *
        *
        var arr = [2, 7,45,454, 11, 15];
        var  target = 17;
        for(var i=0;i<arr.length;i++){
            for (var j=1;j<arr.length;j++){
                if (target ===arr[i]+arr[j] &&arr[i]!==arr[j]){
                  console.log([i,j])
                }
            }
        }*/
        /*
        * 三、大马驮2石粮食,      x=2
        * 中马驮1石粮食,    y=1
        * 两头小马驮一石粮食,  z=1/2     2x +
        * 要用100匹马,
        * 驮100石粮食,
        * 该如何调配?
        *
        var a=0;
        for (var x = 1; x < 100; x++) {
            for (var y = 1; y < 100; y++) {
                for (var z =1; z < 100; z++) {
                    if (2*x+y+(1/2) * z===100 && x + y + z === 100) {
                        a++;
                        console.log(x, y, z ,a+'种');
                    }
                }
            }
        }*/
        /*
        * 四、小明单位发了100元的购物卡,
        * 小明到超市买三类洗化用品,
        * 洗发水(15元),
        * 香皂(2元),
        * 牙刷(5元)。
        * 要把100元整好花掉,
        * 可如有哪些购买结合?
        *
        *
        *
        var a=0;
        for (var x=1;x<100;x++){
            for (var y=1;y<100;y++){
                for (var z=1;z<100;z++){
                    if (15*x+2*y+5*z===100){
                        a++
                        console.log(x,y,z,a+'种')
                    }
                }
            }
        }* */
        /*
        * 五、某侦察队接到一项紧急任务,
        * 要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人
        * ,但有以下限制条件:
        * A和B两人中至少去一人;  0   1
        * A和D不能一起去;
        * A、E和F三人中要派两人去;
        * B和C都去或都不去;
        * C和D两人中去一个;
        * 若D不去,则E也不去。
        * 问应当让哪几    个人去?
        *    *
        for (var a=0;a<=1;a++){
           for (var b=0;b<=1;b++){
               for (var c=0;c<=1;c++){
                   for (var d=0;d<=1;d++){
                       for (var e=0;e<=1;e++){
                           for (var f=0;f<=1;f++){
                               if (a+b>=1&&a+d!==2&&a+e+f===2&&b===c&&c+d===1&&((d===0&&e===0)||(d===1&&d+e>=1))){
                                   console.log(a,b,c,d,e,f)
                               }
    
                           }
                       }
                   }
               }
           }
        }*/
        /*六、五个小朋友排成一队。      5
        问第一个多大了,第一个说比第二个大两岁,      a b c d e       a>b   a-b=2         a=17
        问第二个,第二个说比  第三个大三岁,以此类推。             b>c      b-c=3    c=12   b=15
        问第五个小朋友几岁了,                                              c-d=4  d-e=5    e=3   d=8
        第五个小朋友说3岁了。                                                e=3
        问第一个小朋友几岁?                                            console.log(a)
    
    
        var a=3;
        for (var i=5;i>1;i--){
            a+=i
        }
        console.log(a)   */
        /*七、凑钱1,2,5凑20元钱有多少种可能
    
        for (var a=1;a<20;a++){
            for (var b=1;b<20;b++){
                for (var c=1;c<20;c++){
                    if (a+2*b+5*c===20){
                        console.log(a,b,c)
                    }
                }
            }
        }*/
        /*八、公鸡5元每只,
        母鸡3元每只,
        小鸡3只1元,
        100元买一百只鸡多少种办法
        var f=0;
        for (var a=1;a<100;a++){
            for (var b=1;b<100;b++){
                for (var c=1;c<100;c++){
                    if (5*a+3*b+(1/3)*c===100 &&a+b+c===100){
                        f++;
                        console.log(a,b,c,f+'种')
                    }
                }
            }
        }*/
        /*
        * 九、有一个卡车司机肇事后想逃跑,
        但是被三个人看见其车牌号码,但是没有看全。
        科比说:车牌的前两位是一样的;
        乔丹说:车牌的后两位是一样的,但是与前两位不一样;
        詹姆斯说:车牌是一个数字的平方,
        请编写一个程序计算车辆号牌是多少(车辆号牌是4位数)。
        *
        **/
        /* for (var a = 0; a < 10; a++) {
             for (var b =0; b < 10; b++) {
                 for (var c =0; c < 10; c++) {
                     for (var d =0; d < 10; d++) {
                         if (a === b && c === d && c !== a ){
                             for (var i=1;i<100;i++){
                                 if (a*1000+b*100+c*10+d===i*i){
                                     console.log(a*1000+b*100+c*10+d)
                                 }
                             }
                         }
                     }
                 }
             }
         }
         for(i=1000;i<10000;i++){
             var gg=i%10,ss=Math.floor(i/10%10),bb=Math.floor(i/100%10),qq=Math.floor(i/1000);
             for (var j=1;j<i;j++){
                 if (j===i*i&&gg === ss && bb ===qq&& gg !== bb){
                     console.log(i)
                 }
             }
         }*/
        /*
        * 十、编写一个十六进制转十进制的方法
        * 十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
        * 十六进 0 1 2 3 4 5 6 7 8 9  a  b  c  d  e  f
        *
        function fn(par) {
            var arr = par.split('');//[2,a,f]
            var sum = 0;
            for (var i = 0; i < arr.length; i++) {
                switch (arr[i]) {
                    case 'a':
                        arr[i] = 10;
                        break;
                    case 'b':
                        arr[i] = 11;
                        break;
                    case 'c':
                        arr[i] = 12;
                        break;
                    case 'd':
                        arr[i] = 13;
                        break;
                    case 'e':
                        arr[i] = 14;
                        break;
                    case 'f':
                        arr[i] = 15;
                        break;
                }
               //
                //arr = String(par);//将m转换成字符串并生成数组
                //var x = arr.length;
    
            }
            //for (var j = 0; j <arr.length; j++) {
            //    sum += arr[j]* Math.pow(16,arr.length-1-j );
            //}
            for (var j = 0; j <arr.length; j++) {
                sum += arr[j]* fun(arr.length-1-j );
            }
    
            return console.log(sum)
        }
         console.log(fn('2af'));
        function fun(n) {
            if (n<0){
                return 1/16;
            }
            return fun(n-1)*16
        }
        /*function num(a,b){
    
             document.write(Number(sum));
         }
         console.log(num(1455,12));
         function hexToDec(hex) {
             var result = 0, digitValue;
           //  hex = hex.toLowerCase();
             for (var i = 0; i < hex.length; i++) {
                 digitValue = '0123456789abcdef'.indexOf(hex[i]);
                 result = result * 16 + digitValue;
             }
             return result;
         }
    
         console.log(hexToDec('84fa'));   //5 * 16 *16  +10*16 +15
        //    8*16*16*16+4*16*16+15*16+10
        //120    1*10*10 +  2*10 + 0
        */
        /*
        *十一、大家都知道,男大当婚,女大当嫁。
        * 那么女方家长要嫁女儿,当然要提出一定的条件:
        * 高:180cm以上; 富:1000万以上;       x=180    y=1000
        * 帅:500以上;如果这三个条件同时满足,  z=500
        * 则:‘我一定要嫁给他’如果三个条件只符合两个,
        * 则:‘虽不是最好,但也还可以’如果三个条件只满足一个,
        * 则:‘嫁吧,比上不足,比下有余。’
        * 如果三个条件都不满足,则:‘宁死不嫁!’
        * */
        function fun(h,f,s) {
            if (h>180&&f>1000&&s>500){
                return '我一定要嫁给他'
            }else if (h>180||f>1000|| s>500){
                return '嫁吧,比上不足,比下有余。'
            }else if ((h>180&&f>1000)|| (h>180&&s>500)|| (f>1000&&s>500)){
                return '虽不是最好,但也还可以'
            }else{
                return '宁死不嫁'
            }
        }
        console.log(fun(45645,5464,45646));
    
        /*
        * 十二、东方航空从北京飞往马尔代夫的机票原价为4000元,
        * 4到10月份为旺季 其他月份为淡季,
        * 旺季时候头等舱打9折,经济舱打7.5折;
        * 淡季头等舱打6折, 经济舱打3折。
        * 从页面输入出行的月份
        * 和选择的舱型
        * 计算出机票价格
        *
        var num = prompt('输入一个月份');
        var jc = prompt('输入机舱类型');
        var b = 4000;*/
        /* if (num >= 4 && num <= 10) {
             console.log ((jc === '头等舱')? ('头等舱' + b * 0.9 + '元'):
                 (jc === '经济舱')?('经济舱' + b * 0.75 + '元'):'')
         /!* if (jc === '头等舱') {
              console.log('头等舱' + b * 0.9 + '元');
          } else if (jc === '经济舱') {
              console.log('经济舱' + b * 0.75 + '元')
          }*!/
         } else {
             console.log(
                 (jc === '头等舱')?('头等舱' + b * 0.6 + '元'):
                     (jc === '经济舱')? ('经济舱' + b * 0.3 + '元'):'')
             /!*if (jc === '头等舱') {
                 console.log('头等舱' + b * 0.6 + '元');
             } else if (jc === '经济舱') {
                 console.log('经济舱' + b * 0.3 + '元')
             }*!/
         }
         console.log (
             (num >= 4 && num <= 10)?
             ((jc === '头等舱')? ('头等舱' + b * 0.9 + '元'): ('经b济舱' + b * 0.75 + '元')):
              ((jc === '头等舱')?('头等舱' + b * 0.6 + '元'): ('经济舱' + b * 0.3 + '元'))
         );
         console.log (
             (num >= 4 && num <= 10)?
             (b*(jc === '头等舱')? 0.9:0.75):
             (b*(jc === '头等舱')? 0.6:0.3)
         );*/
        /*十七、求和:实现1!+2!+3!+4!+5!
        *
        *
        function sum(n) {
            if (n<=1){
                return 1
            }
            return  sum(n-1)*n
        }
        console.log(sum(5));
        var z=0;
        for (var i=1;i<6;i++){
            z+=sum(i)
        }console.log(z)*/
        /*十六、求和,实现 1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+5)=35
        function fn(n) {
            if (n<=1){
                return 1
            }
            return fn(n-1)+n
        }
        var sum=0;
        for (var i=1;i<6;i++){
            sum+=fn(i)
        }
        console.log(sum)*/
        /*十九、输入一个数字,然后判断是否为正整数,
        如果不是,提示重新输入;
        如果是,将该数字左右反转,
        然后输出
        (例如:12345,翻转之后为54321)
    
    
    
        function fn() {
            var num = prompt('输入一个数字');
            var a = parseInt(num % 10);
            var b = parseInt(num / 10 % 10);
            var c = parseInt(num / 100 % 10);
            var d = parseInt(num / 1000 % 10);
            var e = parseInt(num / 10000);
            var arr = num.split('');
            var boo=true;
            for (var i = 0; i < arr, length; i++) {
                if (arr[i] === '.') {
                    alert('重新输入正整数');
                    boo = false;
                }
            }
            if (num > 0 && boo) {
                alert('正整数');
                 num.length === 0 ? console.log(a) :
                    num.length === 1 ? console.log(a, b) :
                        num.length === 2 ? console.log(a, b, c) :
                            num.length === 3 ? console.log(a, b, c, d) :
                                num.length === 4 ? console.log(a, b, c, d, e) : ''
            }
    
        }
        fn()*/
        /*二十、输入某年某月某日,判断这一天是这一年的第几天?
        for (var i=1;i<365;i++){
    
        }
        var day,month,year,sum,leap;
        year=Number(prompt('输入年'));
        month=Number(prompt('输入月'));
        day=Number(prompt('输入日'));
        switch(month){
            case 1:sum=0;break;
            case 2:sum=31;break;
            case 3:sum=59;break;
            case 4:sum=90;break;
            case 5:sum=120;break;
            case 6:sum=151;break;
            case 7:sum=181;break;
            case 8:sum=212;break;
            case 9:sum=243;break;
            case 10:sum=273;break;
            case 11:sum=304;break;
            case 12:sum=334;break;
            default:console.log('输入错误,请输入1-12之间的数');break;
        }
        sum+=day;
        if(year%400===0||(year%4===0&&year%100!==0)){
            leap=1;
        }else{
            leap=0;
        }
        if(leap===1&&month===2){
            sum++;
        }
        console.log(sum);*/
        /*var year = Number(prompt());
        var month = Number(prompt());
        var days = Number(prompt());
        var is31 = [1, 3, 5, 7, 8, 10, 12];
        var is30 = [4, 6, 9, 11];
        var count1 = 0;
        var count2 = 0;
        var eryue = 28;
        if (year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0)) {
            eryue = 29
        }
        for (var i = 0; i < is31.length; i++) {
            if (is31[i] < month) {
                count1++;
            }
        }
        for (var j = 0; j < is31.length; j++) {
            if (is30[j] < month) {
                count2++;
            }
        }
        console.log('今天是' + year + '年第' + (month > 2 ? (count1 * 31 + count2 * 30 + eryue + days) :
            (count1 * 31 + count2 * 30 + days)) + '天')*/
        /*十三、输入一个时间,
        输出这个时间的下一秒如:
        输入:23:59:59
        输出: 0: 0: 0
        function num(n){
            if(n<10){
                return '0'+n
            }
            else {
                return ''+n
            }
        }
        var hh = prompt('输入一个时间') * 1;
        var ff = prompt('输入一个时间') * 1;
        var ss = prompt('输入一个时间') * 1;
        ss++;
        if (ss===60){
            ss=0;
            ff++;
            if (ff===60){
                ff=0;
                hh++;
                if (hh===24){
                    hh=0
                }
            }
        }
        console.log(num(hh)+':'+num(ff)+':'+num(ss))*/
        /*十四、已知两个矩形,宽高分别是200*200,400*400,
        甲矩形的坐标是x1,y1.
        乙矩形的坐标是x2,y2.
        写出判断条件两个矩形是否相碰撞
    
        var x1=200,y1=200,x2=400,y2=400;
        if (){
            console.log('会')
        }*/
        var x1=200;//自己随意定义坐标
        var x2=200;
        var y1=400;
        var y2=400;
    
        var bool=true;//先定义一个布尔值为false
    
        if(x1>=x2 && x1<=x2+400 && y1>=y2 && y1<=y2+400){
            bool=false;
        }else if(x1+200>=x2 && x1+200<=x2+400 && y1>=y2 && y1<=y2+400){
            bool=false;
        }else if (x1>=x2 && x1<=x2+400 && y1+200>=y2 && y1+200<=y2+400){
            bool=false;
        }else if(x1+200>=x2 && x1+200<=x2+400 && y1+200>=y2 && y1+200<=y2+400){
            bool=false;
        }
        if(bool){
            document.write("碰撞了");
        }else {
            document.write("没有碰撞");
        }
    </script>
    </body>
    </html>


    仅供参考哦!!!
  • 相关阅读:
    HeadFirst学习笔记-1. 设计模式入门(转载)
    【译】StackExchange.Redis 中文文档目录(转载)
    Redis基础篇(一)数据类型与数据结构(转载)
    Redis基础(二)数据库(转载)
    Redis基础篇(八)数据分片(转载)
    Redis基础篇(七)哨兵机制(转载)
    Redis基础篇(六)数据同步:主从复制(转载)
    Python特点
    Python发展历史
    Python基础
  • 原文地址:https://www.cnblogs.com/punisher999/p/12063688.html
Copyright © 2011-2022 走看看