<!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