js逻辑训练题_原生js逻辑测试题及答案

01、屏幕打印2000到3000之间的所有的数。

for (var i = 2000; i < 3001; i++){

document.write(i+"
")

}

02、求450到550之间所有奇数的和。

var num = 0;for (var i = 451; i < 550; i+=2) {

num+=i

}

document.write("450到550之间所有奇数的和为:" +num)

03、找出200以内,既能整除3又能整除5的所有数。

for (var i = 0; i < 201; i++) {if(i % 3 == 0 && i % 5 == 0){

document.write(i+"
")

}

}

04、如果输入一个数,则弹出对话框“您输入的是偶数”,否则弹出“您输入的是奇数”

var oBtn = document.getElementById("btn")

oBtn.οnclick= function(){var oInputVal = parseInt(document.getElementById("num").value)if(oInputVal % 2 == 0){

alert("您输入的是偶数")

}else{

alert("您输入的是奇数")

}

}

05、页面弹出输入框,只有当用户输入Alice和Bob这两个名字时,才会向用户问好“你好”。

var name = prompt("请输入你的姓名")if(name == "Alice" || name == "Bob"){

alert("你好")

}

06、先后弹出三个输入框,第一个提示:输入一个数字,第二个提示:输入一个+-*/中的任意运算符,第三个提示:输入一个数字,最后弹出他们的运算结果。

var one = parseInt(prompt("请输入一个数字"));var two = prompt("请输入一个运算符");var three = parseInt(prompt("请输入一个数字"));varnum;if(two == "+"){

num= one +three

}else if(two == "-"){

num= one -three

}else if(two == "*"){

num= one *three

}else if(two == "/"){

num= one /three

}

alert(num)

07、屏幕打印1到1000所有能整除11并且不能整除17的数的和。

var num = 0;for(var i = 0 ; i < 1001 ; i++){if(i % 11 == 0 && i % 17 != 0){

num+=i

}

}

document.write(num)

08、写程序屏幕打印出x,y的值(正整数):x+y=10,3x+4y=36。

for (var x = 1; x <= 10; x++) {for (var y = 1; y <= 10; y++) {if (x + y === 10 && 3 * x + 4 * y === 36) {

document.write("x的值为" + x + '
' + "y的值为" +y)

}

}

}

09、如何利用JS生成一个table?行和列由用户自己输入决定。

请输入行与列

var oBtn = document.getElementById("btn");var oBox = document.getElementById("box");

oBtn.οnclick= function(){var oRow = parseInt(document.getElementById("row").value);var oColumn = parseInt(document.getElementById("column").value);var oTable = document.createElement('table');

oTable.setAttribute('border',"1");for (var i = 1; i <= oRow; i++) {

oTr= document.createElement('tr');for(var a = 1 ; a <= oColumn ; a++){

oTd= document.createElement('td');var oText = document.createTextNode(i+"行"+a+"列")

oTd.appendChild(oText)

oTr.appendChild(oTd)

}

oTable.appendChild(oTr)

}

oBox.appendChild(oTable)

}

10、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222。

var a = prompt('输入一个数字');var b = prompt('输入操作次数');var sum = 0;var str = '';for(var i = 0; i < b; i++){

str+=a;

sum+=Number(str);

}

console.log(sum);

11、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和

var a = 2;var b = 1;var c = 0;var num = a+b;for (var i = 0; i < 20; i++) {

c=b

b=a

a= a+c

num+= a+b

console.log(a+"/"+b)

console.log(num)

}

12、一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。

for (var i = 1; i <= 1000; i++){var sum=0;for (var j = 1; j < i; j++){if(i%j==0){

sum+=j;

}

}if(i==sum){

console.log(sum)

}

}

13、写程序屏幕打印出a,b,c的值(100以内的正整数):809*a=800*b+9*c+1。

for(var a = 1; a < 100; a++){for(var b = 1; b < 100; b++){for(var c = 1; c < 100; c++){if(809 * a === 800 * b + 9 * c + 1)

console.log(a,b,c);

}

}

}

14、用户输入任意数字,判断是否是闰年,并打印出接下来的20个闰年。

var count =prompt()for(var a = count; a <= Number(count) + 80; a++){if(a % 4 === 0 && a !== 100 || a % 400 === 0){

console.log(a);

}

}

15、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

var num =Number(prompt());var str = '';var sum =num;for(var a = 2; a <= num; a++){if(num % a === 0 && num !==a){

str+= a + '*';

num/= a;

a--;

}else if(num ===a){

str+=a;break;

}

}

document.write(sum+ '=' + str)

16、编写函数寻找水仙花数(三位数各位数字的立方和恰巧是该数本身)。

for(var b = 100; b < 1000; b++){var sum = parseInt(b / 100) ;var sub = parseInt(b / 10 % 10);var sup = parseInt(b % 10);if(sum * sum * sum + sub * sub * sub + sup * sup * sup ==b){

console.log(sum,sub,sup);

}

}

17、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

var sum = 0;for(var i = 1; i <= 4; i++){for(var j = 1; j <= 4; j++){for(var k = 1; k <= 4; k++){if(i !== j && i !== k && j !==k){

console.log(i,j,k);

sum++;

}

}

}

}

console.log(sum);

18、用户输入任意数字,打印所有该数字内的素数。(只能整除1和自己的数)。

var sub = 0;var sum =Number(prompt());for(var i = 1; i <= sum; i++){for(var a = 2; a <=i; a++){if(i % a === 0){if(i==a){

console.log(i);

}break;

}else if(i==a){

console.log(i);

}

}

}

19、用户输入任意数字,打印出这个数以内的所有闰年。

var year = prompt()*1;for (var i=year;i>0;i--){

year-= 4;if (year%4 == 0 && year%100 !== 0){

document.write(year+ "
");

}

}

20、打印9x9乘法表。(正三角和倒三角两种,该题算两道题)

//倒三角

for(var i=1;i<10;i++){for(var j=i;j<10;j++){

document.write(i+"*"+j+"="+j*i+"   ");

}

document.write("
");

}

//正三角

for(var i=10;i>=1;i--){for(var j=i;j<10;j++){

document.write(i+"*"+j+"="+j*i+"   ");

}

document.write("
");

}

22、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

var h = 100;var sum = 0;for(var a = 0; a < 10; a++){

sum+= h + h / 2;

h/= 2;

console.log(sum);

}

console.log(h);

23、一个6位数,判断它是不是回文数。即123321是回文数,个位与十万位相同,十位与万位相同,百位与千位相同。

var sum =Number(prompt());var a = parseInt(sum / 100000);var b = parseInt(sum / 10000 % 10);var c = parseInt(sum / 1000 % 10);var d = parseInt(sum / 100 % 10);var e = parseInt(sum / 10 % 10);var f = parseInt(sum % 10);if(a === f && b === e && c ===d){

alert('是回文数');

}else{

alert('不是回文数');

}

24、计算从1*1+2*1+2*2+3*1+…+3*3+…+9*1+9*2+…+9*9的值

var c=0;for(var i=0;i<=9;i++){for(var j=0;j<=9;j++){

c+=i*j

console.log(c)

}

}

25、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了 一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

var sum = 1;for(var i = 1; i < 10; i++){

sum= (sum + 1) * 2}

alert(sum);

26、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

for(var a = 0; a < 1000; a++){for(var b = 1; b < 1000; b++){for(var c = 1; c < 1000; c++){if(a + 100 === b * b && a + 1000 + 168 === c *c){

console.log(a,b,c);

}

}

}

}

27、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

var sum = prompt("请输入一个不多于5位的正整数");

console.log(sum.length);var gg = parseInt(sum %10);var ss = parseInt(sum / 10 %10);var bb = parseInt(sum / 100 %10);var qq = parseInt(sum / 1000 %10);var ww = parseInt(sum / 10000 %10);if (sum.length === 5){

console.log(gg,ss,bb,qq,ww);

}else if(sum.length === 4){

console.log(gg,ss,bb,qq);

}else if(sum.length === 3){

console.log(gg,ss,bb);

}else if(sum.length === 2){

console.log(gg,ss);

}else if(sum.length === 1){

console.log(gg);

}

28、企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数。

var lirun =Number(prompt());var sum = 0;if(lirun <= 10){

sum= lirun * 0.1;

}else if(10 < lirun < 20){

sum= 1+ (lirun - 10) * 0.075}else if(20 < lirun < 40){

sum= 1 + 0.75 + (lirun - 20) * 0.05}else if(40 < lirun < 60){

sum= 1 + 0.75 + 1 + (lirun - 40) * 0.03}else if(60 < lirun < 100){

sum= 1 + 000.75+1+0.6+(lirun-60)*0.015}else if(100

sum=1+0.075+1+0.6+0.6+(lirun-100)*0.01}

alert(sum)

29、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问 第三十个月的兔子总数为多少?

var num1 = 1;var num2 = 0;var sum = 0;for (i = 1; i <= 30; i++) {if (i % 2 != 0) {

sum= num1 +num2;

num1=sum;

}else{

sum= num1 +num2;

num2=sum;

}

}

alert("30个月之后,兔子的数量为:" + sum);

30、给这个数组按从小到大顺序排列[3,57,879,345,45,3415,66,890,415,62,25,68,9]。

var arr = [3,57,879,345,45,3415,66,890,415,62,25,68,9];functionsortArr(a,b){return a-b

}

arr.sort(sortArr)

console.log(arr)

31、打印以下图形

1 1 1 1 1 1

1 1 1 1 1

1 1 1 1

1 1 1

1 1

1

for(var j = 6; j >= 0; j--){for(var i = 1; i <= j; i++){

document.write(1+'&nbsp')

}

document.write('
')

}

32、

1

1 1

1 1 1

1 1 1 1

1 1 1 1 1

1 1 1 1 1 1

for(var i = 0; i < 6; i++){for(var j = 0; j <= i; j++){

document.write(1 + '&nbsp');

}

document.write('
')

}

33、

1

1 1

1 1 1

1 1 1 1

1 1 1 1 1

1 1 1 1 1 1

1 1 1 1 1 1 1

for(var i = 0; i < 6; i++){for(var j = 0; j < 6 - i; j++){

document.write('&nbsp');

}for(var a = 0; a <= i; a++){

document.write('1');

}

document.write('
')

}

34、

1 1 1 1 1 1

1 1 1 1 1

1 1 1 1

1 1 1

1 1

1

for(var i = 0; i < 6; i++){for(var j = 0; j <= i; j++){

document.write('&nbsp');

}for(var a = 0; a < 6 - i; a++){

document.write('1');

}

document.write('
')

}

35、

1 1 1 1 1 1

1 1 1 1 1

1 1 1 1

1 1 1

1 1

1

for(var i = 0; i < 6; i++){for(var a = 0; a < i * 2; a++){

document.write('&nbsp');

}for(var j = 0; j < 6 - i; j++){

document.write('1');

}

document.write('
')

}

36、

1

1 1

1 1 1

1 1 1 1

1 1 1 1 1

for(var i=0;i<5;i++){for(var j=0;j

document.write("#")

}

document.write("
")

}

37、

!-!-!-!

!-!-!

!-!

!

!-!

!-!-!

!-!-!-!

for(var i = 0; i < 7; i++){for(var j = 0; j < (i < 4 ? i : 6 - i); j++){

document.write('&nbsp');

}for(var b = 0; b < (i < 4 ? 3 - i : - 3 + i); b++){

document.write('!-');

}

document.write('!
');

}

38、

*

* *

* * *

* * * *

* * * * *

* * * * * *

* * * * *

* * * *

* * *

* *

*

for(var i = 0; i < 11; i++){for(var j = 0; j < (i < 6 ? 5 - i : i - 5); j++){

document.write(' ');

}for(var a = 0; a < (i < 6 ? 1 + i : 11 - i); a++){

document.write('*');

}

document.write('
');

}

39、请输入1-7中的任意数字,判断是星期几。(例如:输入5,弹出“星期五”)

var a =prompt();switch(a) {case" 1":

alert('星期一');break;case" 2":

alert('星期二');break;case" 3":

alert('星期三');break;case" 4":

alert('星期四');break;case" 5":

alert('星期五');break;case" 6":

alert('星期六');break;case" 7":

alert('星期日');break;default:

}

a=== '1' ? alert('星期一') :

a=== '2' ? alert('星期二') :

a=== '3' ? alert('星期三') :

a=== '4' ? alert('星期四') :

a=== '5' ? alert('星期五') :

a=== '6' ? alert('星期六') :

a=== '7' ? alert('星期日') : '';

40、一共40道题,答对36道及以上,就是优秀,24道及以上,不到36道的就是合格,其余的为不及格(用三目运算的形式做,答对的题用a表示).

var a = prompt('答对的题数');if (a>36 && a<=40){

document.write('优秀')

}else if (a>24 && a<=36){

document.write('合格')

}else if (a < 24){

document.write('不合格')

}

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值