设计两位数相加减的小程序,说说思路也行~~

verber34 2015-04-24 03:57:42
本人需要设计一个 “两位数相加减(不进位、不退位)“的小程序,每次单击按钮时,随机出现算式,本人想了一下,难点在于如何让随机产生的两位数相加或是相减时不会出现进位或退位的情况,
我的想法是:如果是加法,个位 产生0-9 的随机整数,十位 产生1到 9减个位 的整数,这样的话,随机出的两个加数无论哪一位相加都不会出现进位的可能。减法就感觉不太方便,需要反复判断数位上数的大小。还有其它的更好点的方法吗?

各位有什么好想法或是思路吗?写上代码也行,我会学习的。

谢谢!
...全文
378 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
verber34 2015-05-26
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:

function rnd(m)
{	
	var a = Math.floor(Math.random()*(10-m))+m;
	var b = Math.floor(Math.random()*(a+1));
	if (m==1)
		return {a:a,b:b||"",c:a-b||""};
	return {a:a,b:b,c:a-b};
}
function jk(g)
{
	var d1 = rnd(0);
	var d2 = rnd(1);
	if (g=="+")
		return ""+d2.b+d1.b+"+"+d2.c+d1.c+"="+d2.a+d1.a;
	if (g=="-")
		return ""+d2.a+d1.a+"-"+d2.b+d1.b+"="+d2.c+d1.c;
}

alert(jk("+"));
alert(jk("-"));

return {a:a,b:b,c:a-b}; 能介绍下返回的意思吗?我是菜鸟
阿狸Ahri 2015-05-26
  • 打赏
  • 举报
回复
引用 5 楼 verber34 的回复:
[quote=引用 2 楼 jslang 的回复:]

function rnd(m)
{	
	var a = Math.floor(Math.random()*(10-m))+m;
	var b = Math.floor(Math.random()*(a+1));
	if (m==1)
		return {a:a,b:b||"",c:a-b||""};
	return {a:a,b:b,c:a-b};
}
function jk(g)
{
	var d1 = rnd(0);
	var d2 = rnd(1);
	if (g=="+")
		return ""+d2.b+d1.b+"+"+d2.c+d1.c+"="+d2.a+d1.a;
	if (g=="-")
		return ""+d2.a+d1.a+"-"+d2.b+d1.b+"="+d2.c+d1.c;
}

alert(jk("+"));
alert(jk("-"));

return {a:a,b:b,c:a-b}; 能介绍下返回的意思吗?我是菜鸟[/quote] 其实返回一个对象的意思,{}表示一个对象,a:a表示一个成员变量a,他的值是变量a, 如 {name:'张三'},就是有一个对象,其中成员变量name的值是 张三。 取值的时候 就是 var test={name:'张三'} alert(test.name)//输出就是张三
joke4k 2015-04-28
  • 打赏
  • 举报
回复
随机生成两个数 直到两个数相加小于9 最后得到两个随机数和他们的和 记为 a,b,aPb 重复上述步骤得到 c,d,cPd 这样可以得到6个数字 加法的话就是 ac+bd 减法的话就是 aPbcPd-bd 或者 aPbcPd-ac
xuzuning 2015-04-25
  • 打赏
  • 举报
回复
function foo(op) {
  do {
    var a = Math.round(Math.random()*80 + 20);
    var b = Math.round(Math.random()*(a-10) + 10);
  }while(a-b < 10 && op == '+');
  if(op == '+') document.write((a-b) + op + b + '<br>');
  else document.write(a + op + b + '<br>');
}

for(i=0; i<10; i++) foo('+');
for(i=0; i<10; i++) foo('-');
天际的海浪 2015-04-24
  • 打赏
  • 举报
回复

function rnd(m)
{	
	var a = Math.floor(Math.random()*(10-m))+m;
	var b = Math.floor(Math.random()*(a+1));
	if (m==1)
		return {a:a,b:b||"",c:a-b||""};
	return {a:a,b:b,c:a-b};
}
function jk(g)
{
	var d1 = rnd(0);
	var d2 = rnd(1);
	if (g=="+")
		return ""+d2.b+d1.b+"+"+d2.c+d1.c+"="+d2.a+d1.a;
	if (g=="-")
		return ""+d2.a+d1.a+"-"+d2.b+d1.b+"="+d2.c+d1.c;
}

alert(jk("+"));
alert(jk("-"));

天际的海浪 2015-04-24
  • 打赏
  • 举报
回复


function rnd(m)
{	
	var a = Math.floor(Math.random()*(10-m))+m;
	var b = Math.floor(Math.random()*(a+1));
	if (m==1)
		return {a:a,b:b||"",c:a-b||""};
	return {a:a,b:b,c:a-b};
}
function jk(g)
{
	var d1 = rnd(0);
	var d2 = rnd(1);
	if (g=="+")
		return ""+d2.b+d1.b+"+"+d2.c+d1.c+"="+d2.a+d1.a;
	if (g=="-")
		return ""+d2.a+d1.a+"-"+d2.b+d1.b+"="+d2.c+d1.c;
}

alert(jk("+"));
alert(jk("-"));
function rnd(m)
{	
	var a = Math.floor(Math.random()*(10-m))+m;
	var b = Math.floor(Math.random()*(a+1));
	if (m==1)
		return {a:a,b:b||"",c:a-b||""};
	return {a:a,b:b,c:a-b};
}
function jk(g)
{
	var d1 = rnd(0);
	var d2 = rnd(1);
	if (g=="+")
		return ""+d2.b+d1.b+"+"+d2.c+d1.c+"="+d2.a+d1.a;
	if (g=="-")
		return ""+d2.a+d1.a+"-"+d2.b+d1.b+"="+d2.c+d1.c;
}

alert(jk("+"));
alert(jk("-"));

相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2015-04-24 03:57
社区公告
暂无公告