一个程序员的自我修养
Delphi象吉普车,什么路上都能开,却在啥路上也开不好;PB就象卡丁车,只能在固定线路上开,到室外就有些不稳;VC象跑车,你开得起却买不起,而且一旦发生故障,想修都找不到毛病在哪;Java象敞棚车,不管刮风下雨还是艳阳高照,都能照开不误;VB就是摩托车,骑的时间越长,你越痛恨它!

1.2012年城市人口25万人,每年增长25%,请问按此增长速度,到哪一年人数将达到100万人?

<script>
	//初始值
	var year = 2012;
	var p = 25;
	
	//循环  条件小于100万成立
	while(p < 100){
		
		//每一年人数增加25%
		p = p + p*0.25;
		//步进  p*0.25  25*0.25
		
		//最终算的结果
		year++;
	}
	console.log(year,p);
</script>

2.打印1–100所有的偶数;

<script>
	var i = 1;
	//奇数的和
	var sum = 0;
	
	while(i <= 100){
		
		//判断偶数
		if(i%2 == 0){
			//进入到这个条件的i都是偶数
			console.log('偶数:',i);
		}else{
			//进入到这个条件的i都是奇数
			sum = sum + i;
		}
		i++;
	}
	console.log('奇数和:',sum);
	
</script>

3.打印三位数中所有的水仙花数;

<script>
	var i = 100,
		g = 0,
		s = 0,
		b = 0;
	
	while(i <= 999){
		//i 是三位数
		g = parseInt(i%10);
		s = parseInt(i/10)%10;
		b = parseInt(i/100);
		
		//判断水仙花
		if(i == g*g*g + s*s*s + b*b*b){
			console.log(i <= g*g*g + s*s*s + b*b*b);//true 真
			//布尔类型  bool  true(非0) false(0)
			console.log('水仙花:',i);
		}
		
		i++;
	}
</script>

4.打印五位数中所有的回文数,例如 12321

<script>
	var i = 10000,
		w = 0,
		q = 0,
		s = 0,
		g = 0,
		cnt = 0;//计数
	
	while(i <= 99999){
		//万位
		w = parseInt(i/10000);
		//千位
		q = parseInt(i/1000)%10;
		//十位
		s = parseInt(i/10)%10;
		//个位
		g = parseInt(i%10);
		
		//判断回文
		if(w == g && q == s){
			console.log('回文数:',i);
			//判断成功就计数
			cnt++;
		}
		i++;
	}
	console.log('回文数有:',cnt);
</script>

5.循环输入某同学S1结业考试的5门课成绩,并计算平均分;

<script>
	//求和
	var sum = 0;
	//平均分
	var arg = 0;
	//循环5次
	for (var i = 0; i < 5; i++) {
		var score = prompt('请输入成绩:');
		score = parseInt(score);
		//每一次的和
		sum = sum + score;
	}
	arg = sum/5;
	console.log(arg);
</script>

6.环操作1 - 100, 判断i是否能够被3 7 整除 ,可以的话 打印i;

<script>
	for (var i = 0; i <= 100; i++) {
		//整除就是余数是0
		if(i%3 == 0 && i%7 == 0){
			console.log(i);
		}
	}
</script>

7.打印Fibonacci数列的前20个数,并打印这20个数的总和。Fibonacci特点:第1,2两个数值为1,从第三个数开始,该数是其前面两个数之和

<script>
	var a1 = 1,//第一个值
		a2 = 1,//第二个值
		sum = 2,//初始值是前两个数的和
		a3 = 0;//后一个数/第三个数
	//循环
	for (var i = 3; i <= 20; i++) {
		//前三个数的和,第三个数的值
		a3 = a1 + a2;
		
		sum = sum + a3;
		
		//交换前两个的值
		a1 = a2;//第一个数等于第二个数
		a2 = a3;//第二个数等于第三个数
	}
	// 1 + 1 = 2第三个
	// 1 + 2 = 3第四个
	// 2 + 3 = 5第五个
	console.log(sum);//17710
</script>

8.求2~99之间能整除3的数字之和

<script>
	var sum = 0;
	
	for (var i = 2; i <= 99; i++) {
		
		if(i%3 == 0){
			sum = sum + i;
		}
	}
	console.log(sum);//1683
	
</script>

9.输入两个数计算这两个数的最大公约数;

<script>
	var a1 = parseInt(prompt('请输入第一个数:'));
	var a2 = parseInt(prompt('请输入第二个数:'));
	
    var min;
	if(a1 > a2){
		min = a2;
	}else{
		min = a1;
	}
	
	//循环
	for (var i = min; i >= 1; i--) {
		console.log(i);
		//约数
		if(a1%i == 0 && a2%i == 0){
			console.log(i);
			break;
		}
	}
</script>

10.输入两个数计算这两个数的最小公倍数;

<script>
	var a1 = parseInt(prompt('请输入第一个数:'));
	var a2 = parseInt(prompt('请输入第二个数:'));
	
	//4 8 -- 8
	//3 5 -- 15
	//两个数中最大值
	var max;
	if(a1 > a2){
		max = a1;
	}else{
		max = a2;
	}
	//循环  初始值max  最大值两个数的乘积
	for (var i = max; i <= a1*a2; i++) {
		
		//判断 公倍数
		if(i%a1 == 0 && i%a2 == 0){
			console.log('最小公倍数',i);
			break;
		}
	}
</script>

11.打印1-100之间所有的质数

<script>

	//循环1-100之间所有的数
	for (var i = 1; i <=100; i++) {
		
		//判断每一个数是不是质数
		//质数:只能被1和本身整除, 1不是质数
		//1 到 i之间的数 (1,i)
		
		//作用:标记   -- 标记质数(当前循环的i是不是质数)
		var isZ = true;//true代表的是质数,不是质数就是false
		
		//除了1和i本身中间所有的数
		for (var j = 2; j < i; j++) {
			
			//判断 
			if(i%j == 0){//条件成立,说明i不是质数
				//标记 不是质数
				isZ = false;
				
				break;//只能结束一层for循环
			}
		}
		
		//判断 --- 打印质数
		if(isZ && i != 1){
			console.log('质数:',i)
		}
	}
</script>

12.循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负或者分数大于100,停止录入并提示录入错误

<script>
	var sum = 0;
	//标记
	var isT = true;//true 全部正确
	
	for (var i = 0; i < 5; i++) {
		var score = parseInt(prompt('请输入成绩:'));
		
		if(score < 0 || score > 100){
			//输入错误
			isT = false;
			break;
		}
		
		sum = sum + score;
	}
	
	if(isT){
		console.log(sum/5)
	}else{
		console.log('输入有误!!')
	}

</script>

13.鸡兔同笼:鸡和兔子一共35只,笼子里一共有94只脚,用程序计算出鸡和兔子分别多少只(用循环实现)

<script>
	var r = 0,
	    c = 0;
	//死循环
	while(1){
		//鸡
		c++;
		//兔子
		r = 35 - c;
		//一共有94只脚成立
		if(c*2 + r*4 == 94){
			console.log(c,r);//23 12
			break;//死循环一定要能退出循环break
		}
	}
</script>

14.求输入一批整数中的最大值和最小值(使用prompt()输入,输入0结束循环,0不参与比较)

<script>
	var max = 0;
	var min = 0;
	//标记
	var isT = true;
	while(1){
		//循环输入
		var num = parseInt(prompt('请输入数字:'));
		
		//输入0结束循环,0不参与比较
		if(num == 0){
			break;
		}
		//只有循环第一次的时候,才会进来
		if(isT){
			//把输入的第一个值作为初始值
			//再次输入的是和第一个值进行比较
			max = num;
			min = num;
			isT = false;
			//isT = !isT;
		}
		
		//输入正确,比较
		//最大值
		if(num > max){
			max = num;
		}
		//最小值
		if(num < min){
			min = num;
		}
		
	}
	console.log(max,min);

</script>

15.输入两个数,例如2,5,求2 + 22 + 222 +...+22222的和

<script>
	var n = parseInt(prompt('第一个数:'));
	var m = parseInt(prompt('输入第二个数'));
	
	var sum = 0;
	var he = 0
	//m是循环的次数
	for (var i = 0; i < m; i++) {
		
		sum = sum*10 + n;
		//2 2
		//20 2 22
		//220 2 222
		//2220 2 2222
		he = he + sum;
	}
	console.log(he);
</script>
posted on 2017-07-26 22:43  阳光洒在代码上  阅读(625)  评论(0)    收藏  举报