`
兰色星座
  • 浏览: 10188 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

JS函数练习

阅读更多
练习题目:



练习1:百钱买百鸡
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>百钱买百鸡</title>
	<script type="text/javascript">
                  //cock--公鸡,hen--母鸡,chicken--小鸡
		// 普通做法
		function doBuy1()
		{
			var cnt=0;//cnt用于观察循环的次数,以便查看优化效果
			for(var cock=1;cock<=100;cock++)
			{
				for(var hen=1;hen<=100;hen++)
				{
					for(var chicken=1;chicken<=100;chicken++)
					{
						cnt++;
						if(cock+hen+chicken==100&&cock*5+hen*3+chicken/3==100)
						{
							console.debug("doBuy1:cock:"+cock+",hen:"+hen+",chicken:"+chicken);
						}
					}
				}
			}
			console.debug("doBuy1:cnt:"+cnt);
		}

		// 优化1
		function doBuy2()
		{
			var cnt=0;
			//除去必须的一只母鸡一只小鸡,剩余的钱最多买17只公鸡
			for(var cock=1;cock<17;cock++) 
			{
				//除去一只公鸡一只小鸡剩余的钱最多买31只母鸡
				for(var hen=1;hen<31;hen++)
				{
					for(var chicken=1;chicken<98;chicken++)
					{
						cnt++;
						
						if(cock+hen+chicken==100&&cock*5+hen*3+chicken/3==100)
						{
							console.debug("doBuy2:cock:"+cock+",hen:"+hen+",chicken:"+chicken);
						}
					}
				}
		  }
			console.debug("doBuy2:cnt:"+cnt);
		}
		// 优化2
		function doBuy3()
		{
			var cnt=0;
			var sum=100;
			for(var cock=1;cock<17;cock++)
			{
				for(var hen=1;hen<(100-cock*5)/3;hen++)
				{
					cnt++;
					var chicken=100-cock-hen;
					if(cock*5+hen*3+chicken/3==100)
					{
						console.debug("doBuy3:cock:"+cock+",hen:"+hen+",chicken:"+chicken)
					}
				}
			}
			console.debug("doBuy3:cnt:"+cnt);
		}
	</script>
</head>
<body>
	<input type="button" value="doBuy1" onclick="doBuy1()">
	<input type="button" value="doBuy2" onclick="doBuy2()">
	<input type="button" value="doBuy3" onclick="doBuy3()">
</body>
</html>

后台结果:

说明:对程序进行优化,减少for循环语句的循环次数,可以减小系统运行负荷

2.练习2:接受用户输入的一个正整奇数,并打印出如题目中所示图形
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>题2</title>
	<script type="text/javascript">
		function doTest()
		{
			while(true)
			{
				//判断输入的数是否为一个正整奇数
				//输入错误则通过continue跳出本次循环进入下次循环再输数字
				//输入正确则跳出整个循环进去while后面的语句
				var n=prompt("请输入一个正整奇数:")*1;
				if(n>0 && !(isNaN(n)) && n%2==1)
				{
					break;
				}
				else{
					continue;
				}
			}
			for(var i=1;i<=n;i++)
			{
				var str="";
				for(var j=1;j<=n;j++)
				{
					if(i==1 || i==n || j==1 || j==n || i+j==n+1 || i==j)
					{
						str+="* ";
					}
					else{
						str+="  ";
					}
				}
				console.debug(str);
			}
			console.debug("n="+n);
		}
		doTest();
	</script>
</head>
<body>

</body>
</html>

后台结果显示:

3.练习3:输入一个正整数,求它各位上数字的和
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>题3</title>
	<script type="text/javascript">
		function doTest()
		{
			while(true)
			{
				//判断输入的数是否为一个正整数
				//输入错误则通过continue跳出本次循环进入下次循环再输数字
				//输入正确则跳出整个循环进去while后面的语句
				var num=prompt("请输入一个正整数:");
				if(num>0 && !(isNaN(num)))
				{
					break;
				}
				else{
					continue;
				}
			}
			var sum=0;
			for(index in num)
			{
				sum+=num[index]*1;
			}
			console.debug("num="+num+";sum="+sum);
		}
		doTest();
	</script>
</head>
<body>

</body>
</html>

后台结果展示:

补充说明:
  • 与练习2相比,在用户输入数据后,练习2将在数据后“ *1 ”,因为prompt输入的数据为字符串类型,*1后将其转化为number类型;
  • 在练习3中并没有将其数据类型进行转化,利用其string类型的特性,通过for...in遍历每位上的数字,此时通过“ *1 ”方法将其转化为number型逐位相加
4.练习4:把用户输入的数据累加,直到输入零为止,输出累加的结果
function doTest()
		{
			var sum=0;
			while(true)
			{
				var num=prompt("请输入一个数:")*1;
				if(num==0)
				{
					console.debug("num="+num);
					break;
				}
				else
				{
					sum+=num;
				}
				console.debug("num="+num);
			}
			console.debug("sum="+sum);
		}
		doTest();

后台结果查看:

补充说明:"sum=0"这个变量注意放在while循环外部,放在循环内部,则没循环一次,sum都会被重新赋值为0,达不到累加的要求。
  • 大小: 29.4 KB
  • 大小: 5.9 KB
  • 大小: 43.4 KB
  • 大小: 2.9 KB
  • 大小: 4.7 KB
分享到:
评论

相关推荐

    JavaScript常用函数练习

    JavaScript学习函数时,常常会听懂了却做不来实际例子,本资源有部分函数的经典案例及答案,其中有些是基础题,有些逻辑对新人来说难以理解,希望对大家有所帮助。

    javascript-functions-pt2:javascript函数练习

    JavaScript函数-第2部分创建一个空白的,有效HTML5文档。 创建一个JavaScript文件解决每个给定的问题,创建一个返回值的函数。 然后将函数的结果输出到JavaScript控制台。例子 function test ( str ) { return "test...

    JavaScript学习笔记_js常用函数封装_js包.zip

    本压缩包“JavaScript学习笔记_js常用函数封装_js包.zip”包含了对JavaScript基础及进阶技巧的学习资料,特别关注了函数封装和模块化开发实践。 首先,`tool.js`可能是一个实用工具函数集合,封装了一些常见的...

    JS基础练习题

    ### JS基础练习题知识点解析 #### 一、选择题知识点详解 **1. 分析代码输出结果** - **代码分析**: 这段代码初始化了一个数组`arr`,然后使用一个循环来累加数组中的所有元素(除了第一个元素)。变量`sum`用来...

    javascript 函数教程(由浅入深)

    以下是关于JavaScript函数的详细讲解: 1. **函数定义**: - 无参函数定义:`function 函数名 () { 代码... }` - 有参函数定义:`function 函数名 (参数列表) { 代码... }` - 参数列表中的参数可以是变量、常量...

    javascript 的函数的使用

    javascript的函数的简单使用小实例

    jsexercises:JS函数练习

    "jsexercises:JS函数练习" 提供了一系列的JavaScript练习题,旨在帮助开发者深入理解和掌握JavaScript中的函数用法。在这个压缩包文件中,"jsexercises-master"很可能是包含所有练习的源代码目录。 JavaScript函数...

    functional-js:函数式javascript练习的解决方案

    通过这些练习,你不仅能加深对JavaScript函数式编程的理解,还能提升代码质量和可维护性。在实际开发中,函数式编程能帮助写出更简洁、无副作用的代码,易于测试和调试,同时也易于并行化处理,尤其在处理大量数据时...

    函数练习.js

    函数练习.js

    各种数学函数算法实现js版本

    "各种数学函数算法实现js版本"是一个专门为这些需求提供的资源,它包含了多种数学函数的JavaScript实现,可以极大地提高开发效率,避免重复造轮子,同时减少服务器与客户端之间的数据交换,提升用户体验。...

    JavaScript函数式编程

    JavaScript函数式编程是一种编程范式,它将计算视为数据处理,并强调使用无副作用的纯函数。...本电子教程将详细解释每一个概念,并提供丰富的示例和练习,帮助读者掌握JavaScript函数式编程的精髓。

    js_HTML_Dom操作练习

    本实践项目“js_HTML_Dom操作练习”旨在帮助初学者熟悉DOM的基本操作,包括查找、修改和添加网页元素。在这个过程中,我们将探讨几个关键的DOM接口和方法,以加深对JavaScript与HTML交互的理解。 1. **获取元素**:...

    JS-Exercise-Prototype:JS构造函数的练习

    构造函数,原型和此JavaScript基础目标解释“ this”关键字的四个原理,并举例说明每个解释描述并使用原型,构造函数new关键字和伪古典继承来构建对象介绍为了完成这些任务,您将需要新获得的有关构造函数,原型和...

    JavaScript练习题.doc

    函数练习 函数是 JavaScript 中的一种基本结构,用于封装代码块,实现代码的重用和模块化。练习题一中,我们编写了一个函数,用于输出 1~1000 之间所有能同时被 3,5,7 整除的证书,并要求每行显示 6 个这样的数。...

    javascript函数作用域学习示例(js作用域)

    JavaScript中的作用域是一个非常核心的概念,它决定了变量和函数的可见性和生命周期。在学习JavaScript作用域之前,我们需要先了解在其他编程语言中常见的块级作用域(block scope)。在像C语言这样的编程语言中,每...

    javascript-functions-pt1:Javascript函数练习的第一部分

    在这个"javascript-functions-pt1"的练习中,我们将深入探讨JavaScript函数的基础知识,包括它们的定义、调用方式以及如何使用函数来组织代码。 一、函数的定义 在JavaScript中,函数是一种可重复使用的代码块,...

    JavaScript程序设计课件:函数综合练习.pptx

    函数综合练习 5.6 综合练习 【练习1】编写一个函数 f(x) = 4x^2+3x+2,使用户通过提示对话框输入x的值,能得到相应的计算结果。 5.6 综合练习 【练习2】编写一个函数Min(x,y)求出x,y这两个数中的最小值,要求x,y的...

    北大青鸟javascript上机练习和课后习题

    这个压缩包文件“北大青鸟javascript上机练习和课后习题”很可能包含了丰富的学习资源,旨在通过实践来巩固理论知识。 首先,我们要了解JavaScript的基本概念。它是一种解释型、面向对象的脚本语言,主要应用于网页...

    js2阶段的js第一章课后习题答案

    本压缩包文件“js2阶段的js第一章课后习题答案”是针对JavaScript学习者的一个资源,特别是那些正在进行js2阶段学习的学员。这个章节通常涵盖JavaScript的基础概念,包括语法、变量、数据类型、操作符、流程控制以及...

Global site tag (gtag.js) - Google Analytics