例1:判断GDP总值
2009年时 CHN 49089.82
USA 142562.75
中国的增长率是0.08,美国的增长率是0.02
假设增长率不变,什么时候中国超越美国?
设计步骤:
1、输入09年数据
2、输入增长率
3、判断中国和美国GDP
var year = 2009;
var CHN =49089.82;
var USA =142562.75;
var rate1 =0.08;
var rate2 =0.02;
while(CHN< USA) {
CHN*= 1+rate1;
USA*= 1+rate2;
year++;
}
alert(year+ "年中国超越美国");
套路 | 水仙花数 | GDP总值 |
确定初始状态 | Num = 100 | Year = 2009 USA = 142562.75 CHN 49089.82 |
循环的条件 | Num < 1000 | USA > CHN |
循环体 | 判断Num是不是水仙花数 | USA *= 1.02 CHN *=1.08 |
为下次循环做准备 | Num++ | Year++ |
例2:计算圆周率
Pi = (1- )*4
精确度最后一项的绝对值小于10^-6
初始状态:pi = 0
Fenzi = 1
Fenmu = 1
重复的条件:分数的绝对值大于10^-6
重复做:将这个分数加到pi里面
如何过渡到下次循环:
Fenzi = fenzi *(-1)
Fenmu = fenmu +2
循环结束之后,圆周率=pi * 4
var pi = 0;
var fenzi =1;
var fenmu =1;
while(Math.abs(fenzi/fenmu)>Math.pow(10,-6)){
pi +=fenzi/fenmu;
fenzi *=(-1);
fenmu +=2;
}
pi *= 4;
alert("圆周率为:"+pi);
例3:求圆周率,(随机数法)面积为1的正方形中随机扔一豆子
获得 0-1 的随机数 Math.random()
1、初始状态
Sum = 0;
Num = 0
2、重复的条件
Num<10000
3、重复做的事情
随机生成两个数,判断这个点是否在圆内,如果是则sum++
4、为循环做准备
Num++
落在圆内的豆子数/总的豆子数
var sum = 0;
var num =10000;
for(var i = 0;i < num;i++){
var x = Math.random();
var y = Math.random();
if(Math.sqrt(x*x +y*y) <= 1){
sum++;
}
}
var pi =4 * (sum /num);
alert("圆周率:" + pi);
以上是循环结构的一些例题,明日继续更博!