• 3、流程语句相关练习


    数学函数

    /*
    x的y次方
    Math.pow(x, y)
    */
    // alert(Math.pow(2, 3));

    /*
    Math.random()
    【注】随机0~1的任意数。
    [0, 1)
    【注】随机0~9的任意整数。
    */

    		// alert(Math.random());
    
    		var num = parseInt(Math.random() * 10);
    		alert(num);
    
    1、输入年月日,输出当前年第几天。2018.05.17 。month
                var year = 2018;
    			var month = 5;
    			var date = 17;
    			var currentDay = 0;
    			switch(month){
    				case 12:
    					currentDay += 30;
    				case 11:
    					currentDay += 31;
    				case 10:
    					currentDay += 30;
    				case 9:
    					currentDay += 31;
    				case 8:
    					currentDay += 31;
    				case 7:
    					currentDay += 30;
    				case 6:
    					currentDay += 31;
    				case 5:
    					currentDay += 30;
    				case 4:
    					currentDay += 31;
    				case 3:
    					currentDay += 28;
    				case 2:
    					currentDay += 31;
    				case 1:
    					currentDay += date;
    					break;
    				default:
    					alert("error");
    					break;
    			}
    			if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
    			    if(month > 2){
    				alert(currentDay + 1);
    			    }else{
    				alert(currentDay);
    			    }
    		    }else{
    			alert(currentDay);}
    
    2、个人所得税

    image

                var salary = 20000;
    			var tax = 0;
    			// salary = salary - 3500;
    			salary -= 3500;
    			if(salary >= 0 && salary <= 500){
    				tax = salary * 0.05;
    			}else if(salary > 500 && salary <= 2000){
    				tax = salary * 0.1;
    			}else if(salary > 2000 && salary <= 5000){
    				tax = salary * 0.15;
    			}else if(salary > 5000 && salary <= 20000){
    				tax = salary * 0.2;
    			}else if(salary > 20000 && salary <= 40000){
    				tax = salary * 0.25 - 1;
    			}else if(salary > 40000 && salary <= 60000){
    				tax = salary * 0.3 - 3;
    			}else if(salary > 60000 && salary <= 80000){
    				tax = salary * 0.35 - 6;
    			}else{
    				tax = salary * 0.4 - 10;
    			}
    			alert(tax); //3300
    
    3、循环习题
    
    			1、打印100–200之间所有能被3或者7整除的数
    			
    			/*for(var i = 100; i <= 200; i++){
    				if(i % 3 == 0 || i % 7 == 0){
    					document.write(i + "<br />");
    				}
    			}*/
    
    			
    				2、打印九九乘法表
    			
    			/*for(var i = 1; i < 10; i++){
    				//输出九九乘法表的式子
    				for(var j = 1; j <= i; j++){
    					document.write(j + "X" + i + "=" + i * j + "&ensp;")
    				}
    				document.write("<br/>");
    			}*/
    
    
    			3、判断一个数是合数,还是质数。
    			
    			var num = 6;
    			/*
    				分析:
    				肯定能被1和它本身整除。
    				2~6
    			*/
    			var isYes = false; //布尔值,记录是否是合数。
    			for(var i = 2; i < num; i++){
    				if(num % i == 0){
    					//判断出来是合数
    					isYes = true;
    					// alert(i);
    					break;
    				}
    			}
    
    			if(isYes == true){
    				alert("这是一个合数");
    			}else{
    				alert("这是一个质数");
    			}
    
    
    			
    			4、求出1-1/2+1/3-1/4…..1/100的和 var i=1;  i*-1*-1
    			
    			
    			var sum = 0;
    			for(var i = 1; i <= 100; i++){
    				if(i % 2 == 0){
    					sum -= 1 / i;
    				}else{
    					sum += 1 / i;
    				}
    			}
    			alert(sum);
    			
    			
    			5、输出20-30之间能被3整除的数,5个一行。
    			
    			
    			/*
    			var count = 0; //用于计数
    			for(var i = 30; i <= 80; i++){
    				if(i % 3 == 0){
    					//没找一个符合条件的元素,就计数一次
    					if(count % 4 == 0){
    						document.write("<br />");
    					}
    					document.write(i + "&ensp;");
    					count++;
    
    				}
    			}*/
                  
                    
                6、打印1000-2000年,所有的闰年,四个一行输出。
                
    			var count = 0; //用于计数
    			for(var i = 1000; i <= 2000; i++){
    				if(i % 400 == 0 || i % 4 == 0 && i % 100 != 0){
    					if(count % 4 == 0){
    						document.write("<br />");
    					}
    					document.write(i + "&ensp;")
    					count++;
    				}
    			}
    			
    		    7、100-1000以内的水仙花数
    		        
    		        /*
    				1、找出所有三位数
    			*/
    			for(var i = 100; i < 1000; i++){
    				//2、将每一位数取出 123
    				// 【注】关键点:将每一位取出
    				var a = i % 10;
    				// var b = parseInt(i / 10) % 10;
    				var b = parseInt(i % 100 / 10);
    				var c = parseInt(i / 100);
    
    				// var sum = a * a * a + b * b * b + c * c * c;
    
    				var sum = Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3);
    
    				if(i == sum){
    					//3、水仙花数
    					document.write(i + "<br/>");
    				}
    			}
    			8、宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。
    			有一次,国王因为他的贡献要奖励他,问他想要什么
    			。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:
    			第一格一粒,第二格两粒,……,后面一格的麦子总是前一格麦子数的两倍,
    			摆满整个棋盘,我就感恩不尽了。”
    			国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,
    			你会不会劝国王别答应,为什么?  
    			
    			var tmp = 1; //每一格的麦子数
    			var sum = 0; //求和
    			for(var i = 0; i < 64; i++){
    				sum += tmp;
    				tmp *= 2;
    			}
    			alert(sum);
    
    			//18446744073709552000
    			
    			
    	
    			9、打印1——100的所有数,除了7的倍数和带7的数。
    			
    				关键点:取出个位和十位,去进行判断
    				除了7的倍数  或
    				带7的数
    			
    
    		(1)/*for(var i = 1; i <= 100; i++){
    				//1、剔除7的倍数
    				var a = i % 10;
    				var b = parseInt(i / 10) % 10;
    				if((a == 7 || b == 7) || i % 7 == 0){
    					continue;
    				}
    
    				document.write(i + "<br/>");
    			}*/
    
    
    		(2)/*for(var i = 1; i <= 100; i++){
    				//1、剔除7的倍数
    				if(i % 7 == 0){
    					continue;
    				}
    				var a = i % 10;
    				var b = parseInt(i / 10) % 10;
    				if(a == 7 || b == 7){
    					continue;
    				}
    
    				document.write(i + "<br/>");
    			}*/
    
    
    		(3)找出7的倍数和带数字7的值
    		/*for(var i = 1; i <= 100; i++){
    				if(i % 7 == 0){
    					document.write(i + "<br />");
    				}else{
    					var a = i % 10;
    					var b = parseInt(i / 10) % 10;
    					if(a == 7 || b == 7){
    						document.write(i + "<br />");
    					}
    				}
    			}*/
    
    			
    			10、求1!+2!+3!+4!+5!
    					1 + 2 + 6 + 24 + 1 20
    				分析:
    					1、加五次
    					2、每一次里面应该如何循环。
    			var sum = 0;
    			for(var i = 1; i <= 5; i++){
    				var amass = 1;
    				for(var j = 1; j <= i; j++){
    					amass *= j;
    				}
    				sum += amass;
    			}
    			alert(sum); //153
    			
    			
    			11、输入两个数,求两个数的最大公约数(*****)
    				
    					//能够同时整除两个数的最大数
    					9 6   3
    					15 5  5
    					关键字
    					1.先找出两个数中最小的那个数
    			*/
    			var num1 = 15;
    			var num2 = 5;
    			//1、找出两个数中的较小数
    			/*var min = 0;
    			if(num1 < num2){
    				min = num1;
    			}else{
    				min = num2;
    			}
    			alert(min);*/
    			var min = num1 < num2 ? num1 : num2;
    			// alert(min);
    			while(1){
    				if(num1 % min == 0 && num2 % min == 0){
    					break;
    				}
    				min--;
    			}
    			// alert("最大公约数是:" + min);
    
    
    			12、输入两个数,求两个数的最小公倍数(****)
    			
    				9 6  18
    				8 4  8
    				关键点
    				1. 先找出两个数中的最大数
    				2. 最大数++,找出能被两个数整除的数(退出循环)
    
    			var num1 = 15;
    			var num2 = 5;
    			var max = num1 > num2 ? num1 : num2;
    			while(1){
    				if(max % num1 == 0 && max % num2 == 0){
    					break;
    				}
    				max++;
    			}
    			// alert(max);
    
    
    			13、输入两个数n,a,如果n==3, a == 2;
    				输出 2 + 22 + 222 的值。(不用输出式子)(****)
    				如果n == 4, a == 3;
    				输出 3 + 33 + 333 + 3333的值。
    
    				1、n = 3,相加三次,每次相加比前一次相加的数,多一位
    				2、每次多的这个位数的值为a
    			*/
    
    			/*
    				3 + 33 + 333 + 3333
    			*/
    
    			var n = 4;
    			var a = 3;
    			var sum = 0;
    			var tmp = a; //关键点:每一次累加的数。
    			for(var i = 0; i < n; i++){
    				sum += tmp;
    				tmp = tmp * 10 + a;
    			}
    			// alert(sum);
    
    
    			14、五位数中,对称的数称为回文数,找出所有的回文数。
    				如12321(***)
    				关键点:将每一位数都取出来。
    
    			/*var num = 12321;
    			var a = num % 10;
    			var b = parseInt(num / 10) % 10;
    			var c = parseInt(num / 1000) % 10;
    			var d = parseInt(num / 10000);
    			if(a == d && b == c){
    				alert("这就是一个回文");
    			}*/
    
    			for(var i = 10000; i < 100000; i++){
    				var a = i % 10;
    				var b = parseInt(i / 10) % 10;
    				var c = parseInt(i / 1000) % 10;
    				var d = parseInt(i / 10000);
    				if(a == d && b == c){
    					document.write(i + "<br/>");
    				}
    			}
    			
    
  • 相关阅读:
    Geohash
    Go加密解密之RSA[转]
    在MACOS上实现交叉编译
    [转]MySQL与MongoDB的操作对比
    CentOS 6 使用 yum 安装MongoDB及服务器端配置
    Ubuntu下PHP的扩展
    golang 图片处理,剪切,base64数据转换,文件存储
    性能测试应用领域
    性能测试用例、策略和方法
    性能测试类型
  • 原文地址:https://www.cnblogs.com/zhongchao666/p/9275469.html
Copyright © 2020-2023  润新知