经典的例子(一)

 

1.乘法口诀表

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

表格版的乘法口诀表:

<script>
    document.write("<table border='1' cellpadding='0' cellspacing='0'>");
    for(var i=1;i<=9;i++){
        document.write("<tr>");
            for(var j=1;j<=i;j++){
                document.write("<td>");
                document.write(i+"*"+j+"="+i*j);
                document.write("<td>");
            }
        document.write("</tr>");

    }
    document.write("</table");
</script>

2.五角星

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

 

3,三角形排列的五角星

<script>
    //控制行数的
    for (var i = 0; i < 5; i++) {
        //控制每一行有几个星星
        for (var j = 0; j <= i; j++) {
            document.write("☆");
        }
        document.write("<br/>");
    }
</script>

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

<script>
    var money = 10000;//本金
    var rate = 0.003;//利率
    for(var i=0;i<6;i++){
        money=money+money*rate;
        money+=money*rate;
    }
    console.log(money);
</script>

结果:10365.999802881313

5.有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月都可以生一对小兔子,而一对小兔子从出生后第3个月起每月生一对小兔子,假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖多少对?(兔子的规律为数列,1,1,2,3,5,8,13,21)

<script>
    //分析的过程,伪代码
    var num1 = 1;//第一个月
    var num2 = 1;//第二个月
    var sum = num1 + num2;//第三个月

    var num1 = num2;//第二个月
    var num2 = sum;//第三个月
    var sum = num1 + num2;//第四个月

    var num1 = num2;//第三个月
    var num2 = sum;//第四个月
    var sum = num1 + num2;
    //正式代码
    var num1 = 1;
    var num2 = 1;
    var sum = 0;
    //i=3是从第三个月开始
    for (var i = 3; i <= 12; i++) {
        sum = num1 + num2;
        num1 = num2;
        num2 = sum;
    }
    console.log(sum);
    //结果:144   斐波那契数列12个月的值
</script>
<script>
//用函数实现斐波那契数列
    function getFib(num) {
        var num1 = 1;
        var num2 = 1;
        var sum = 0;
        for (var i = 3; i <= num; i++) {
            sum = num1 + num2;
            num1 = num2;
            num2 = sum;
        }
        return sum;
    }

    console.log(getFib(12));
</script>

6,找到100-200之间第一个可以被7整除的数字,输出

<script>
    for(var i=100;i<=200;i++){
        if(i%7==0){
            console.log(i);
            break;
        }
    }
    //105
</script>

7.求100-200之间所有奇数的和(写2种,一种用continue)

<script>
    var sum=0;
    var i=100;
    while(i<=200){
        //判断是不是偶数
        if(i%2==0){
            //如果是偶数,跳过这个数字
            i++;//101
            continue;
        }
        sum+=i;
        i++;
    }
    console.log(sum);
</script>
<script>
    var sum=0;
    var i=100;
    while(i<=200){
        //判断是不是奇数
        if(i%2!=0){
            sum+=i;
        }
        i++;
    }
</script>

8.求100-200之间所有除了个位数为3的数的和。

<script>
    var sum=0;
    var i=100;
    while(i<=200){
        if(i%10==3){
            //个位数是3,不要
        i++;
        continue;
        }
        sum+=i;
        i++;
    }
    console.log(sum);
</script>

 9.关于数组的各种操作例子。

<script>
    //求数组中所有元素的和
    var arr1 = [10, 20, 30, 40, 50];
    var sum = 0;
    for (var i = 0; i < arr1.length; i++) {
        sum += arr1[i];
    }
    console.log(sum);

    //求数组中所有元素的平均值
    var arr2 = [10, 20, 30, 40, 50];
    var sum2 = 0;
    for (var i = 0; i < arr2.length; i++) {
        sum2 += arr2[i];
    }
    console.log(sum2 / arr2.length);

    //求数组中所有元素的最大值
    var arr3 = [1, 3, 5, 2, 6, 7, 45645, 3];
    //假设max变量中存储的是最大值
    var max = arr3[0];//var max=Number.MIN_VALUE;假设变量是最大的,但是实际上存储的是最小的值
    for (var i = 0; i < arr3.length; i++) {
        //判断这个变量的值和数组中每个元素的值是否是最大值
        if (max < arr3[i]) {
            max = arr3[i];
        }
    }
    console.log("最大值:" + max);

    //求数组中的最小值
    var arr4 = [100, 10, 20, 30, 40];
    var min = arr4[0];
    for (var i = 0; i < arr4.length; i++) {
        if (min > arr4[i]) {
            min = arr4[i];
        }
    }
    console.log("最小值:" + min);

    //倒序遍历数组
    var arr5=[10,20,30,40,50];
    //1,正序遍历如下
    for(var i=0;i<arr5.length;i++){
        console.log(arr5[i]);
    }
    //2,倒序遍历如下
    for(var i=arr5.length-1;i>=0;i--){
        console.log(arr5[i]);
    }

    //把数组中每个元素用|拼接到一起产生一个字符串并输出
    //方法一:除去最后一个,其他每个的后面都加一个“|”
    var names=["张三","李四","网二","玛丽","汤姆","吉姆","鸣人"];
    var str="";//
    for(var i=0;i<names.length-1;i++){
        str+=names[i]+"|";
    }
    console.log(str+names[names.length-1]);
    //方法二:除去第一个,其他每个的前面都加一个“|”
    var names=["张三","李四","网二","玛丽","汤姆","吉姆","鸣人"];
    var str="";//
    for(var i=1;i<names.length;i++){
        str+="|"+names[i];
    }
    console.log(names[0]+str);
<script>
//去掉数组中重复的0,把其他的数据放在一个新的数组中
var arr = [10, 20, 30, 0, 23, 0, 10, 0];
var newArr = [];//新数组,用来存放第一个数组中所有非0的数字
for (var i = 0; i < arr.length; i++) {
    if (arr[i] != 0) {
        newArr[newArr.length] = arr[i];//本来新数组是空的,长度为0,放进去一个元素之后,长度变为1,但该元素在新数组中下标为0,数组的长度是可以改变的
    }
}
console.log(newArr);
</script>
<script>
//反转数组--把数组中的数据的位置调换
var array = [10, 20, 30, 40, 50];
//循环的目的是控制交换的次数
for (var i = 0; i < array.length / 2; i++) {
    //先把第一个元素的值放在第三方变量中
    var temp = array[i];
    array[i] = array[array.length - 1 - i];
    array[array.length - 1 - i] = temp;
}
console.log(array);
</script>
<script>
 //提示用户输入班级人数,求总成绩,平均值,最高分,最低分
    //提示用户输入人数,并转成数字类型
    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;
    var avg = 0;//平均值
    var max = perScores[0];//最大值
    var min = perScores[0];//最小值
    for (var i = 0; i < perScores.length; i++) {
        sum += perScores[i];//求和
        //求最大值
        if (max < perScores[i]) {
            max = perScores[i];
        }
        //求最小值
        if (min > perScores[i]) {
            min = perScores[i];
        }
    }
    //平均值
    avg = sum / perScores.length;
    console.log("和为:" + sum);
    console.log("平均值为:" + avg);
    console.log("最大值:" + max);
    console.log("最小值:" + min);
</script>

10.冒泡排序

<script>
    //冒泡排序
    var arr = [10, 50, 30, 3, 100, 34];
    //循环控制比较次数
    for (var i = 0; i < arr.length - 1; i++) {
        //控制每一轮的比较的次数
        for (var j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                var temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    console.log(arr);
</script>

11.关于函数的练习

<script>
    //求1-n之间的所有数字的和
    function geteverySum(n) {
        var sum = 0;
        for (var i = 0; i <= n; i++) {
            sum += i;
        }
        return sum;
    }

    console.log(geteverySum(100));
</script>
<script>
    // 求n-m之间所有数字的和
    function geteverySum1(n, m) {
        var sum = 0;
        for (var i = n; i <= m; i++) {
            sum += i;
        }
        return sum;
    }

    console.log(geteverySum1(1, 100));
</script>
<script>
    //求圆的面积
    function getS(r) {
        return Math.PI * r * r;
    }

    console.log(getS(5));
</script>
<script>
    //判断一个数是否是素数(质数)
    function isPrimeNumber(num) {
        for (var i = 2; i < num; i++) {//还可以根据数的一半以及平方根来判断
                //i<=num/2;
            if (num % i == 0) {
                //说明有一个数字整除了,就没有必要向后继续整除了,此时就已经验证是否为质数了
                return false;
            }
        }
        return true;
    }
console.log(isPrimeNumber(8) ? "是质数" : "不是质数");
//或者写成下面这样来判断,和上面这一句是一样的。

    var result = isPrimeNumber(2);
    if (result) {
        console.log("这个数字是质数");
    } else {
        console.log("这个数字不是质数");
    }

</script>
<script>
//求两个数字的差
    function getSub(x, y) {
        return x - y;
    }

    console.log(getSub(10, 20));

    //求一组数中的最大值
    function getArrayMax(array) {
        //定义变量假设这个变量中存储的是最大值
        var max = array[0];
        for (var i = 0; i < array.length; i++) {
            if (max < array[i]) {
                max = array[i];
            }
        }
        return max;
    }

    var arr = [10, 20, 30, 40, 50];
    var max = getArrayMax(arr);
    //或者:var max=getArrayMax([10,20,30,40,50]);
    //可以直接把数组传到函数中的
    console.log(max);

    //求一组数中的最小值
    function getArrayMin(array) {
        //定义变量假设这个变量中存储的是最小值
        var min = array[0];
        for (var i = 0; i < array.length; i++) {
            if (min > array[i]) {
                min = array[i];
            }
        }
        return min;
    }

    console.log(getArrayMin([10, 20, 30, 40, 50]));
</script>
<script>
//求一组数字的和
function getArraySum(array) {
    var sum = 0;
    for (i = 0; i < array.length; i++) {
        sum += array[i];
    }
    return sum;
}

console.log(getArraySum([10, 20, 3, 40, 33]));
</script>
<script>
//求一个数组中的最大值和最小值还有和(下面是对函数的注释的书写形式)
/**
 * 给我一个数组,我返回一个数组(最大值,最小值,和)
 * @param array参数是一个数组
 * @returns {*[]}返回值是一个数组,第一个元素值是最大值,第二个元素是最小值,第三个元素是和
 */
function getArrayMaxAndMinAndSum(array) {
    var min = array[0];//最小值
    var max = array[0];//最大值
    var sum = 0;//和
    for (var i = 0; i < array.length; i++) {
        sum += array[i];
        //最大值
        if (max < array[i]) {
            max = array[i];
        }//end if
        //最小值
        if (min > array[i]) {
            min = array[i];
        }//end if
    }//end for
    var arr = [max, min, sum];
    return arr;
}

//测试
var resultArray = getArrayMaxAndMinAndSum([1, 2, 3, 4, 5, 6, 7, 8]);
console.log("最大值:" + resultArray[0]);
console.log("最小值:" + resultArray[1]);
console.log("和:" + resultArray[2]);
</script>

 

<script>
    //通过函数实现反转
    function reverseArray(arr) {
        for (i = 0; i < arr.length / 2; i++) {
            var temp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }
        return arr;
    }

    console.log(reverseArray([1, 2, 3, 4, 5]));</script><script>
    //通过函数实现冒泡排序
    function sortArray(arr) {
        for (var i = 0; i < arr.length - 1; i++) {
            for (var j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }//end if
            }//end for
        }//end for
        return arr;
    }
    console.log(sortArray([1, 23, 5, 67, 87, 32]));
</script>
<script>
    //输入年,月,日,获取这个日期是这一年的多少天
    //判断这个年份是不是闰年
    function isLeapYear(year) {
        return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
    }

    //2017年1月31日
    function getDays(year, month, day) {
        //定义变量存储对应的天数
        var days = day;
        //如果用户输入的是一月份,没必要向后算天数,直接返回天数
        if (month == 1) {
            return days;
        }
        //代码执行到这里,说明用户输入的不是1月份
        //用户输入的是4月23日,1,2,3+23
        //定义一个数组,存储每个月份的天数
        var month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        //小于的是输入的月份减1
        for (var i = 0; i < month - 1; i++) {
            days += months[i];
        }
        //需要判断这个年份是不是闰年
        if (isLeapYear(year) && month > 2) {
            days++;
        }
        return days;
    }

    console.log(getDays(2017, 3, 2));
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值