js实现随机的四则运算题目

本文介绍如何使用JavaScript编写一个程序,生成适合小学生的随机四则运算题目,包括排除负数和小数,以及引入分数运算。通过调整代码,实现了生成包含整数和分数的四则运算题目,并提供了最终版本的题目生成示例。
摘要由CSDN通过智能技术生成

 老师给出的题,写一个小程序,可以生成随机的四则运算题目给给小学生用。以前自己就写了一个四则运算的简单js小程序,是这样的:

事件

+-*/

这是个自己输入的算法,但要求是自动产生随机数。于是我用产生随机数的函数重新写了一个:

new document

开始生成题目

 这样就可以自动的生成随机的30个四则运算题目了。但是还是有问题,小学生啊!他们不知道负数,不知道小数。所以还要加入判定条件!

switch(Arr[n]){
                case "+":{
                sum=a+b;
                break;
                }
                case "-":{
                sum=a-b;
                while(sum<0){
                    var a = GetRandomNum(1,30);
                    var b = GetRandomNum(1,30);
                    sum=a-b;
                }
                break;
                }
                case "*":{
                sum=a*b;
                break;
                }
                case "/":{
                sum=a/b;
                while(hasDot(sum)){
                        var a = GetRandomNum(1,100);
                        var b = GetRandomNum(1,100);
                        sum=a/b;
                    }
                break;
                }

这样负数和小数都没有了。

 不过,小学生貌似会分数的运算。于是我又开始试试写分数的。

 <body> 
<button class="btn btn-success btn-sm" type='button' οnclick="pl_f()">开始生成题目</button> <span id="text_f"></span> <script> function GetRandomNum(Min,Max) { var Range = Max - Min; var Rand = Math.random(); return(Min + Math.round(Rand * Range)); } function max_num(x,y) { var t; while (y) { t = x%y; x = y; y = t; } return x; } function fenshu(a,b,p) { if (p==1) { if (a>b) { return a+"/"+b; }else if(a<b){ return a+"/"+b; }else { return 1; } }else { var x=a/p; var y=b/p; if(y==1){ return x; }else{ return x+"/"+y; } } } function pl_f() { var son_a = GetRandomNum(1,30); var par_b = GetRandomNum(1,30); var son_c = GetRandomNum(1,30); var par_d = GetRandomNum(1,30); var X=son_a+"/"+par_b; var Y=son_c+"/"+par_d; document.write("第一个分数:"+X+"<br>"); document.write("第二个分数"+Y+"<br>"); max_x=max_num(son_a,par_b); max_y=max_num(son_c,par_d); document.write("第一个最大公约数"+max_x+"<br>"); document.write("第二个最大公约数"+max_y+"<br>"); var N=fenshu(son_a,par_b,max_x); var M=fenshu(son_c,par_d,max_y); document.write("第一个分数化简:"+N+"<br>"); document.write("第二个分数化简"+M); } </script> </body>

这个可以动态的生成两个分数,然后输出这个分数分子和分母的最大公约数。最后输出分子的最简式。

最后就是将分数放入整数一起了!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tra
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值