JavaScript循环练习题
①输出1-10与5相乘的结果
<script>
function ld(){
for (var i=1;i<=10;i++){
console.log(5*i);
}
}
ld()
</script>
②用程序计算1-100的和,并输出
<script>
function lxy(){
var i=0;
var sum=0
while (i<=100){
sum+=i;
i++;
}
return sum;
}
document.write(lxy())
</script>
③任意输入一个数,判断该数是否为水仙化数,(每位上的数字的立方和等于该数本身)
<script>
var num=Number(prompt("请输入一个三位数:"));
if (num>=100&&num<1000){
var a=Math.floor(num/100);
var b=Math.floor(num/10)%10;
var c=num%10;
var d=Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3);
if (d==num){
alert(num+"是水仙花数");
}else{
alert(num+"不是水仙花数");
}
}else{
alert("请输入一个三位数");
}
</script>
输出所有的水仙花数
<script>
var ld=[];
for (var i=100;i<1000;i++){
var a=Math.floor(i/100);
var b=Math.floor(i/10)%10;
var c=i%10;
var d=Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3);
if (d==i){
ld.push(i);
}
}
console.log(ld);
</script>
④把100-200之间不能被3整除的数输出
<script>
for (var i=100;i<=200;i++){
if (i%3==0){
continue;
}else{
console.log(i);
}
}
</script>
⑤将1998-2008年之间的闰年年份输出
<script>
for (var i=1998;i<=2008;i++){
if ((i%4==0&&i%100!=0)||i%400==0){
console.log(i);
}
}
</script>
⑥求S = a + aa + aaa + aaaa + aaaaa + aaaaaa + aaaaaaa +……
a和n从键盘输入,例如用户输入的a是2,n是5,则要求将2+22+222+2222+22222的和计算出来
<script>
var a=Number(prompt("请输入a的值:"));
var n=Number(prompt("请输入n的值:"));
var num='';
var nums=[];
var sum=0;
for (var i=0;i<n;i++){
num+=a;
nums.push(num);
}
for (var j=0;j<nums.length;j++){
sum+=parseInt(nums[j]);
}
document.write(nums.join("+")+"="+sum);
</script>
⑦一个球从1000米高空下落,落地后弹起,每次弹起的高度是下落时的一半,
问第五次落地时弹起的高度,一共又经历了多长的距离?
<script>
var h=1000;
// 落地距离
var l=h/2;
// 弹起距离
var s=0;
// 总距离
for (var i=0;i<5;i++){
s=h+l+s;
h=h/2;
l=l/2;
}
document.write(s)
</script>
⑧题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
<script>
var s=1;
for (var i=1;i<10;i++){
s=(s+1)*2;
}
document.write(s)
</script>
⑨打印一个九九乘法表
<script>
document.write("<table>")
for (var i=1;i<10;i++){
document.write("<tr>")
for (var j=1;j<i+1;j++){
document.write("<td>")
document.write(j+"X"+i+"="+j*i)
document.write("</td>")
}
document.write("</tr>")
}
document.write("</table>")
</script>
代码运行结果如下:
⑩求乘积等于100 的所有乘数和被乘数(以一对的形式输出)
<script>
for (var i=1;i<=100;i++){
for (var j=1;j<=100;j++){
if (i*j==100){
document.write(i+"X"+j+'='+i*j+"<br>");
}
}
}
</script>
代码运行结果如下:
十一、将100以内所有的素数输出
<script>
for (var i=2;i<=100;i++){
var ld=false;
for (var j=2;j<i;j++){
if (i%j==0){
ld=true;
}
}
if (!ld){
console.log(i);
}
}
</script>
十二、将100以内既是合数又是奇数的数添加到一个数组并打印这个数组,最终计算这个数组的中位数
<script>
var ld;
var arr=[]
for (var i=2;i<=100;i++){
ld=false;
for (var j=2;j<i;j++){
if (i%j==0&&i%2!=0){
ld=true;
}
}
if (ld){
arr.push(i);
}
}
console.log(arr);
var len=arr.length;
var zhong;
// 中位数
if (len%2==0){
zhong=(arr[len/2]+arr[(len/2)-1])/2;
}else{
zhong=arr[Math.floor(len/2)];
}
document.write(zhong);
</script>
代码运行结果如下:
十三、计算1!+2!+3!+4!…n!
<script>
function jc(n){
if (n==1){
return 1;
}else{
return jc(n-1)*n
}
}
var num=Number(prompt("请输入n的值"));
var sum=0;
for (var i=1;i<=num;i++){
sum+=jc(i);
}
document.write(sum)
</script>
十四、计算1-1/2+1/3-1/4+1/5…1/n
<script>
var n=Number(prompt("请输入n的值:"));
var sum=0;
for (var i=1;i<=n;i++){
if (i%2==0){
sum-=1/i;
}else{
sum+=1/i;
}
}
document.write(sum);
</script>
十五、牙刷5元一件,香皂2元一件,洗发水15元一件,把100元刚好用完,有多少种购物方式?
<script>
for(a =0;a<20;a++){
for(b=0;b<50;b++){
for (c=0;c<6;c++){
if((5*a)+(2*b)+(15*c)==100){
document.write('牙刷:'+a+"香皂:"+b+"洗发水:"+c);
document.write("<br>")
}
}
}
}
</script>
代码运行结果如下:
十六、循环接受本班学生的考试成绩,有30个学生,每个学生有5门成绩,接受并计算所有学生的所有门成绩的和,输出 (学生的人数由用户控制,询问用户是否要继续,答案为’1’时就接收下一个学生的成绩,每个学生还是5门成绩)
<script>
var arr1=new Array();
var arr2=new Array();
var arr3=new Array();
var arr4=new Array();
var arr5=new Array();
var arr6=new Array();
var count=0;
var all_sum=0
while (true){
count+=1;
var score1=Number(prompt("请输入第"+count+"个学生的第一门成绩"));
var score2=Number(prompt("请输入第"+count+"个学生的第二门成绩"));
var score3=Number(prompt("请输入第"+count+"个学生的第三门成绩"));
var score4=Number(prompt("请输入第"+count+"个学生的第四门成绩"));
var score5=Number(prompt("请输入第"+count+"个学生的第五门成绩"));
var sum=score1+score2+score3+score4+score5;
arr1.push(score1);
arr2.push(score2);
arr3.push(score3);
arr4.push(score4);
arr5.push(score5);
arr6.push(sum);
var jixu=prompt("是否要继续,是输入1,")
if (count>30){
alert("别输入了,咱班就30名学生")
break;
}else{
if (jixu==1){
all_sum+=sum;
}else{
all_sum+=sum;
for (var i=0;i<count;i++){
document.write("第"+(i+1)+"个学生的成绩分别是"+arr1[i]+','+arr2[i]+','+arr3[i]+','+arr4[i]+','+arr5[i])
document.write("总分是"+arr6[i])
document.write("<br>")
}
break;
}
}
}
document.write("所有学生的总分加起来是:"+all_sum)
</script>
十七、求Fibonacci数列40个数.这个数列特点为,第1,2两个数为1,1,从第三个数开始,该数是前面两个数的和.即1,1,2,3,5,8,13,21……
<script>
var a=1,b=1;
var c;
var i=0;
while (i<40){
document.write(a+"<br>")
c=b;
b=a+b;
a=c;
i++;
}
</script>