JavaScript基础算数

1. 1-100之和

    var sum = 0;
    var i = 1;
    while(i <= 100){
        sum += i;
        i++;
    }
    console.log(sum);

或:

    var sum = 0;
    for(var i=0;i<=100;i++){
        sum += i;
    }
    console.log(sum);

2. 6的阶乘

    var jc = 1;
    var i = 1;
    while(i <= 6){
        jc *= i;
        i++;
    }
    console.log(jc);

3. 1-100之间所有偶数和

    var i = 1;
    var sum = 0;
    while(i <= 100){
        if(i%2 == 0){
            sum += i;
        }
        i++;
    }
    console.log(sum);

或:

    var sum = 0;
    for(var i=0;i<=100;i++){
        if(i%2==0){
            sum += i;
        }
    }
    console.log(sum);

1-100所有奇数和:

        var sum = 0;
        var i = 1;
        while(i<=100){
            if(i%2==0){
                i++;
                continue;
            }
            sum +=i;
            i++;
        }
        console.log(sum);

4. 输出1-100之间所有能被7整除的数

    var i = 0;
    while(i <= 100){
        if(i%7 == 0){
            console.log(i);
        }
        i++;
    }

5. 求100以内所有3的倍数和

    var i = 1;
    var sum = 0;
    while(i<=100){
        if(i%3==0){
            sum += i;
        }
        i++;
    }
    console.log(sum);

或:

    var i = 1;
    var sum = 0;
    do{
        if(i%3==0){
            sum += i;
        }
        i++;
    }while(i<=100)
    console.log(sum);

6. 小星星

    for(var i=0;i<=5;i++){
        for(var j=0;j<=i;j++){
            document.write("*");
        }
        document.write("<br>")
    }

7. 乘法口诀表

    for(var i=1;i<=9;i++){
        for(var j=1;j<=i;j++){
            document.write( j+"*"+i+"="+j*i)
            document.write("&emsp;");
        }
        document.write("<br>");
    }

8. 利率问题

本金10000元存入银行,年利率是千分之三,每过一年,将本金和利息相加作为新的本金,计算5年之后获得多少本金?

        var money = 10000;
        var rate = 0.003;
        for(var i=0;i<5;i++){
            money += money*rate;
        }
        console.log(money);

9. 求整数100-200的累加值,但跳过所有个位数为3的数

        var sum = 0;
        var i = 100;
        while(i<=200){
            if(i%10==3){
                i++;
                continue;
            }
            sum += i;
            i++;
        }
        console.log(sum);

10. 求数组中所有元素的和

        var arr = [10,20,30,40,50];
        var sum = 0;
        for(var i=0;i<arr.length;i++){
            sum +=arr[i];
        }
        console.log(sum);

11. 求数组中所有元素的平均值

        var arr = [10,20,30,40,50];
        var sum = 0;
        for(var i=0;i<arr.length;i++){
            sum +=arr[i];
        }
        console.log(sum/arr.length);

12. 求数组中所有元素中的最大值

        var arr = [10,20,30,40,50];
        var max = arr[0];
        for(var i=1;i<arr.length;i++){
            if(max<arr[i]){
                max = arr[i];
            }
        }
        console.log(max);

13. 倒序遍历数组

        var arr = [10,20,30,40,50];
        var max = arr[0];
        for(var i=arr.length-1;i>=0;i--){
            console.log(arr[i]);
        }

14. 把数组中的每个元素用 | 拼接到一起

        var names = ["小明","小红","小刚"]
        var str = "";
        for(var i=0;i<names.length;i++){
            str += names[i]+"|";
        }
        console.log(str);

15. 去掉数组中的0,把其他的数据放到新数组中

        var arr = [10,0,20,30,0,40,50];
        var newArr = [];
        for(var i=0;i<arr.length;i++)
            if(arr[i] != 0){
            newArr[newArr.length] = arr[i];
        }
        console.log(newArr);

16. 反转数组

        var arr = [10,20,30,40,50];
        for(var i=0;i<arr.length/2;i++){
            var temp = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length - 1 - i] = temp;
        }
        console.log(arr);

17. 提示用户输入班级人数,求总成绩、平均值、最高分、最低分。

        var perCount = parseInt(prompt("请输入班级人数"));
        var perScores = [];
        for(var i=0;i<perCount;i++){
            perScores[perScores.length] = parseInt(prompt("请输入第"+(i+1)+"位同学的成绩"));
        }
        console.log(perScores);
        // 总成绩
        var sum = 0;
        for(var i=0;i<perScores.length;i++){
            sum += perScores[i];
        }
        // 平均成绩
        var avg = 0;
        avg = sum/perScores.length;
        // 最高分、最低分
        var max = perScores[0];
        var min = perScores[0];
        for (var i = 0; i < perScores.length; i++) {
            if(max<perScores[i]){
                max = perScores[i];
            }
            if(min>perScores[i]){
                min = perScores[i];
            }
        }
        console.log("总成绩为:"+sum+"、"+"平均成绩为:"+avg+"、"+"最高分为:"+max+"、"+"最低分为:"+min+"。")

18. 判断一个数是整数,还是小数?

对于一个“数字型字符串”,如果这个数字是整数,则parseInt()和parseFloat()两个方法返回的结果是一样的,例如parseInt(“2017”)返回2017,parseFloat(“2017”)返回2017。如果这个数字是小数,则parseInt()和parseFloat()两个返回的结果是不一样的,例如parseInt(“3.14”)返回3,而parseFloat(“3.14”)返回的是3.14。
也就是说,如果是整数,则parseInt()和parseFloat()返回结果一样。如果是小数,则parseInt()和parseFloat()返回结果不一样。因此我们可以通过这个特点,来判断一个数是整数,还是小数。

        var n = 3.14;
        if (parseInt(n.toString()) == parseFloat(n.toString()))
        {
            document.write(n+ "是整数")
        }
        else
        {
            document.write(n + "是小数")
        }

19. 找出“水仙花数”

所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数的本身。例如153就是一个水仙花数,因为153 = 13 + 53 + 33。

        //定义一个空字符串,用来保存水仙花数
        var str = ""; 
        for (var i = 100; i < 1000; i++)
        {
            var a = i % 10;             //提取个位数
            var b = (i / 10) % 10       //提取十位数
            b = parseInt(b);            //舍弃小数部分
            var c = i / 100;            //提取百位数
            c = parseInt(c);            //舍弃小数部分
            if (i == (a * a * a + b * b * b + c * c * c)) 
            {
                str = str + i + "、";
            }
         }
         document.write("水仙花数有:" + str);

20. 实现内置Math.max()方法

function MyMath() {
        this.getMax = function () {
          var max = arguments[0];
          for (var i = 0; i < arguments.length; i++) {
            if (max < arguments[i]) {
              max = arguments[i];
            }
          }
          return max;
        };
      }

      var mt = new MyMath();
      var result = mt.getMax(10, 20, 30, 5, 9, 100, 50, 46);
      console.log(result);

21. 产生随机的十六进制颜色值

function getColor() {
        var str = "#";
        var arr = [
          "0",
          "1",
          "2",
          "3",
          "4",
          "5",
          "6",
          "7",
          "8",
          "9",
          "a",
          "b",
          "c",
          "d",
          "e",
          "f",
        ];

        for (var i = 0; i < 6; i++) {
          var num = parseInt(Math.random() * 16);
          str += arr[num];
        }
        return str;
      }
      console.log(getColor());

22. 统计某个字符的个数

var str = "Can you can a can as a Canner can can a can";
      var n = 0;
      for (var i = 0; i < str.length; i++) {	
      	//获取字符串中的每个字符
        var char = str.charAt(i);
        if (char.toLowerCase() == "c") {
          n += 1;
        }
      }
      console.log(n);

23. 统计字符串中有多少个数字

function getNum(str) {
        var num = 0;
        for (var i = 0; i < str.length; i++) {
          var char = str.charAt(i);
          if (char != " " && !isNaN(char)) {
            num++;
          }
        }
        return num;
      }

      console.log(getNum("1d3sdsg"));

24. 统计单词个数

		//统计空格个数,然后加1
      var str = "Rome was not built in a day";
      var n = 0;
      for (var i = 0; i < str.length; i++) {
        if (str.charAt(i) == " ") {
          n++;
        }
      }
      n++;
      console.log(n);

25. 数组与字符串的转换操作

      var str1 = "今天吃什么";
      var str2 = str1.split("").join("><");
      var arr = str2.split("");
      arr.unshift("<");
      arr.push(">");
      var result = arr.join("");
      console.log(result);

var str2 = str1.split("").join("><");表示在str1所有字符的中间插入大于号和小于号(><),因此str2为"今><天><吃><什><么"。
var arr = str2.split("");表示将str2转换为数组,str2中每一个字符都是数组的一个元素。因为只有将str2转换为数组,我们才可以使用数组的unshift()方法和push()方法。

26. 数组与字符串的转换操作

     function getSize(width, height, depth)
        {
            var area = width * height;
            var volume = width * height * depth;
            var sizes = [area, volume];
            return sizes;
        }
        var arr = getSize(30, 40, 10);
        document.write("底部面积为:" + arr[0] + "<br/>");
        document.write("体积为:" + arr[1]);

一般情况下,函数只可以返回一个值或变量。由于这里需要返回长方体底部面积和体积两个值,因此我们可以使用数组来保存。

27.getDay()方法返回的是一个数字,如果我们想要将数字转换为中文,例如将“星期4”变成“星期四”,这个时候该怎么做呢?

var weekday = [
        "星期日",
        "星期一",
        "星期二",
        "星期三",
        "星期四",
        "星期五",
        "星期六",
      ];
      var d = new Date();
      document.write("今天是" + weekday[d.getDay()]);

28.生成随机验证码

var str =
        "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
      var arr = str.split("");
      // console.log(arr);
      var result = "";
      for (var i = 0; i < 4; i++) {
        var n = Math.floor(Math.random() * arr.length);
        result += arr[n];
      }
      document.write(result);

这里注意一点,由于数组下标是从0开始的,因此var n = Math.floor(Math.random() * (arr.length+1);这种写法是错误的。

28.生成随机颜色值

function getRandomColor() {
        var r = Math.floor(Math.random() * (255 + 1));
        var g = Math.floor(Math.random() * (255 + 1));
        var b = Math.floor(Math.random() * (255 + 1));
        var rgb = "rgb(" + r + "," + g + "," + b + ")";
        return rgb;
      }
      document.write(getRandomColor());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值