四-1 逻辑练习题
1. 计算2的n次幂,n可输入,n为自然数
n个2相乘
原思路关键代码:
var s = 0;
for( var i = 0; i < n-1; i++){
s = s * 2
}
优化后
1 * 2
1 * 2 * 2
1 * 2 * 2 * 2
var s = 1;
for( var i = 0; i < n; i++){ s = s * 2; }
2. 计算n的阶乘, n可输入
5! = 5 * 4 * 3 * 2 * 1;
4! = 4 * 3 * 2 * 1;
var s = 1;
for( var i = 1; i < = n; i++ ){ s * = i; }
另外实现方法见六-1,递归函数
3. 斐波那契数列,输出第n项(从1开始)
f s t
1 1 2 3 5 8
f s
first = 1;
second = 1;
if( n > 2 ){
for ( var i = 0; i < n-2; i++) {
third = first + second;
first = second;
second = third;
}
document.write( third );
}else {
document.write ( 1 );
}
另外实现方法见六-1,递归函数
4. 编写一个程序,输入一个三位数的正整数,输出时反向输出
5. 输入a,b,c三个数字,打印出最大的 // if else比较即可
6. 打印出100以内的质数
var count = 0;
for ( var i = 1; i < 100; i++ ){
for ( var j = 1; j <= i; j++){
if( i % j == 0){
count ++ ;
}
}
if ( count == 2) {
document.write ( i + " ");
}
count = 0;
}
优化!!!!!!!!!!!
var count = 0;
for ( var i = 2; i < 100; i++ ){
for ( var j = 1; j <= Math.sqrt ( i ) ; j++){
if( i % j == 0){
count ++ ;
}
}
if ( count == 1) {
document.write ( i + " ");
}
count = 0;
}