(javascript菜鸟教程)(js菜鸟编程)

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>

/*

* 1.题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不過瘾,又多吃了一个

* 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

* 以后每天早上都吃了前一天剩下的一半零一个。

* 到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

*/

function demo1()

{

/*

* 猴子第一天的桃子数十第二天桃子数加上1的一倍(也就是说第n天的桃子数是第n+1天的一倍)

* */

var y=1; //在第十天时剩的桃子数1个

for(var day=9;day>=1;day--) //第十天的桃子数已知,所以循环应循环九天就可以

{

y=(y+1)*2;

}

document.write(y);

}

//demo1();

/*

* 2.求1/2+2/3+3/4+4/5+…+98/99+99/100的值。

* 分析:分子等于它对应的第项数(第1项分子是1,第2项分子是2...第99项分子是99)

* 分子从1到99,分母从2到100。分母是它对应的分子加1

* 所以,用i代表分子,用i+1代表分母

*/

function demo2()

{

var num=0;

for(var i=1;i<=99;i++) //控制项数

{

num+=i/(i+1);

}

document.write("1/2+2/3+3/4+4/5+…+98/99+99/100="+num);

}

//demo2();

/*

* 3.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?

*/

function demo3()

{

var n; //折叠次数

var h1=0.08 //一张纸的厚度

var h2=8848130 //珠穆朗玛峰的高度(单位:mm)

for(i=0;h1<h2;i++)

{

h1*=2;

}

document.write("一张0.08mm后的纸折叠"+i+"次后可达到珠穆朗玛峰的高度");

}

//demo3();

/*

* 4.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的:

* 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。

* 现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。

*/

function demo4()

{

var n=0;

var i=0; //要买的公鸡的只数

var j=0; //要买的母鸡的只数

var k=0; //要买的小鸡的只数

for(i=0;i<=20;i++) //控制公鸡的个数,比如公鸡不能超过20只(20*5=100)

{

for(j=0;j<=33;j++) //控制母鸡的个数,母鸡不能超过33只(33*3=99)

{

for(k=0;k<=100;k++) //控制小鸡个数,因为买的只数不能超过100只

{

//判断,当买i只公鸡的钱+买j只母鸡的钱+买k只小鸡的钱=100文钱

// 并且 公鸡只数i+母鸡只数j+小鸡只数k=100只,则符合实际需求

if((5*i+3*j+(1/3)*k)==100 && i+j+k==100 && k%3==0)

{

n++;

document.write("第"+n+"种方案:");

document.write("100文可以买:"+i+"只公鸡,"+j+"只母鸡,"+k+"只小鸡"+"<br>");

}

}

}

}

}

//demo4();

/*

* 5.题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

* 例如10和15的最大公约数是5,最小公倍数是30。

* 分析:因数分解法——分别把两个数做质因数分解,把相同质因数跳出来,取两者较小的次幂乘起来,

* 就是最大公约数。两个数的积除以最大公约数,就是最小公倍数。

*/

function demo5()

{

var j=0;

var m=window.prompt("请输入一个整数m:");

var n=window.prompt("请输入一个整数n:");

m=parseInt(m);//强制转换,因为输入框输入的内容都会被电脑解析成字符串类型,所以要转化成整形,方便计算

n=parseInt(n);// 同上

if(n>m) //找出输入的两个数中较大的一个数

{

j=n; //将较大的值n赋值给中间变量j

n=m; //将较小的值m赋值给n

m=j; //将较大的值n赋值给m

}

/*

* 判断较大的值对较小的值取余是否为0,如果为0.则较小的只是这两个数的最大公约数

* 较大的值是这两个数的最小公倍数

*/

if(m%n==0)

{

document.write(m+"与"+n+"的最大公约数为:"+n);

document.write("<br>"); //换行

document.write(m+"与"+n+"的最小公倍数为:"+m);

}

else //如果不符合上面if中的条件,则进行循环查找

{

for(i=n-1;i>=1;i--)

{

if(m%i==0 && n%i==0)

{

document.write(m+"与"+n+"的最大公约数为:"+i);

document.write("<br>");

document.write(m+"与"+n+"的最小公倍数为:"+n*m/i);

break;

}

}

}

}

//demo5();

/*

* 6.有一对兔子,从出生后第3个月起每个月都生一对兔子,

* 小兔子长到第三个月每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?

* 分析:第一个月一对,第二个月一对,第三个月两对,第四个月三对,第五个月五对

* 综上可知该规律符合斐波拉契数列

* */

function demo6()

{

var n=0; //第n个月的对数

var n1=1; //第一个月的对数

var n2=1; //第二个月的对数

for(var i=1;i<=12;i++) //从第一个月开始,计算一月到十二月每月的兔子对数

{

/*

* 因为兔子在它出生的第三个月才会生兔子,所以第一月和第二月都是一对

*/

if(i==1 || i==2) //第一月和第二月

{

n=1;

document.write("第"+i+"个月有:"+n+"对兔子");

document.write("<br>");

}

else //除了第一月和第二月的其他月

{

n=n1+n2; //第n项=第n-2项+第n-1项

n1=n2; //将第n-1的值赋值给第n-2项

n2=n; //将第n项的值复制给第n-1项

document.write("第"+i+"个月有:"+n+"对兔子");

document.write("<br>"); //换行

}

}

}

//demo6();

/*

* 7.海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个

* 这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份

* 又多了一个,它同样把多的一个扔入海中,拿走一份,第三、第四、第五只猴子都是

* 这样做的,问海滩上原来最少有多少个桃子?

*/

function demo7()

{

var s=0;

for(var i=1;i<1000;i++) //i为最后一个猴子拿走的桃子数量 ,i是没有范围的,猴子最后拿走的桃子谁也不清楚

{

s=5*i+1; //表示第五只猴子分之前的桃子总数量

for(var j=4;j>=1;j--)

{

s=5*(s/4)+1;

}

if(s%5==0)

{

document.write("桃子的总数量为:"+s);

break;

}

}

}

demo7();

</script>

<body>

</body>

</html>

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者我乖乖的人所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(javascript菜鸟教程)(js菜鸟编程)
本文链接:https://www.51qsb.cn/article/m9gj3.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-07-08
下一篇2023-07-09

你可能还想知道

发表回复

登录后才能评论