1.計算2的n 次冪,n可輸入,n爲自然數;
高人指點的方法:
<script type="text/javascript">
var n = parseInt(window.prompt("input"));
var x = 2;
for(var i = 0;i < n-1; i++){
x = x * 2 ;
document.write(x);
}
</script>
老師的方法:
<script type="text/javascript">
var n = window.prompt("input n");
// 1 * 2
// 1 * 2 * 2
// 1 * 2 * 2 * 2
// 1 * 2 * 2 * 2 * 2
var mul = 1;
for(var i = 0;i < n;i++){
mul *= 2; // 循環一次就把1乘以2的值,賦給mul,循環二次就把2乘以2的值,賦給mul,循環三次就把4乘以2的值,賦給mul,依次循環;
}
document.write(mul);
</script>
附加題:
計算m的n 次冪,n可輸入,
<script type="text/javascript">
var m = parseInt(window.prompt("input m"));
var n = parseInt(window.prompt("input n"));
var x = m;
for(var i = 0;i < n-1; i++){
x = x * m ;
document.write(x);
}
</script>
2.計算 n 的階乘,n可輸入
<script type="text/javascript">
var n = parseInt(window.prompt("input n"));
// n 不能變,因爲n控制循環次數
var x = n; // 因爲n 不能變,需要把n 的初始值賦給x,用於階乘的乘法運算
var y = n;
for(var i = 0;i < n-1; i++){
document.write("運算前 x = ", x, "<br>");
y = y - 1; // y 是階乘每次減1
document.write("y = ", y, "<br>");
x = x * y ;
document.write("運算後 x = ", x, "<br>");
document.write("------------------------------<br>");
}
</script>
老師的方法:
<script type="text/javascript">
var n = window.prompt("input n");
// 5! = 5 * 4 * 3 * 2 * 1;
var mul = 1;
for(var i = 1;i <= n;i++){
mul *= i; // 循環一次就把1乘以1的值,賦給mul,循環二次就把1乘以2的值,賦給mul,循環三次就把2乘以3的值,賦給mul,依次循環;
}
document.write(mul);
</script>
附加題:
<script type="text/javascript">
// var m = parseInt(window.prompt("input m"));
var n = parseInt(window.prompt("input n"));
// n 不能變,因爲n控制循環次數
var x = 1; // 因爲n 不能變,需要把n 的初始值賦給x,用於階乘的乘法運算
var y = 1;
for(var i = 0;i < n-1; i++){
document.write("運算前 x = ", x, "<br>");
y = y + 1;// y 是階乘每次減1
document.write("y = ", y, "<br>");
x = x * y ;
document.write("運算後 x = ", x, "<br>");
document.write("------------------------------<br>");
}
</script>
運算前 x = 1
y = 2
運算後 x = 2
------------------------------
運算前 x = 2
y = 3
運算後 x = 6
------------------------------
3.著名的斐波那契額數列(1 1 2 3 5 8輸出第n項)
<script type="text/javascript">
// 第一位加第二位,等於第三位,第二位加第三位,等於第四位,第三位加第四位,等於第五位
var n = parseInt(window.prompt("input n"));
var x = 0;
var y1 = 1;
var y2 = 1;
for(var i = 0;i < n; i++){
document.write("前一個數 y1 = ", y1, "<br>");
document.write("後一個數 y2 = ", y2, "<br>");
x = y1+y2;
document.write("新的數 x = ", x, "<br>");
document.write("------------------------------<br>");
// 爲下一次循環做準備
y1 = y2;
y2 = x;
}
</script>
老師的方法:
<script type="text/javascript">
// f s t
// 1 1 2
// f s
var n = parseInt(window.prompt("input"));
var first = 1,
second = 2,
third;
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);
}
</script>
4.編寫一個程序,輸入一個三位數的正整數,輸出時反向輸出。(輸入456,輸出654)
<script type="text/javascript">
var n = window.prompt("input n");
// js字符串截取
var x1 = n.substr(0, 1);
var x2 = n.substr(1, 1);
var x3 = n.substr(2, 1);
document.write(x3, x2, x1);
</script>
5.輸入a,b,c三個數,打印出最大的。
<script type="text/javascript">
var a = 3;
var b = 2;
var c = 1;
var x = 0;
if(a > b){
document.write(a);
x = a;
}else {
document.write(b);
x = b;
}
if(x > c){
document.write(x);
}else {
document.write(c);
}
</script>
老師的方法:
<script type="text/javascript">
// var n = window.prompt("input n");
var a = window.prompt("input a");
var b = window.prompt("input b");
var c = window.prompt("input c");
if(a > b ){
if(a > c){
document.write(a);
}else{
document.write(c);
}
}else{
if(b > c){
document.write(b);
}else{
document.write(c);
}
}
</script>
6.打印出100以內的質數
<script type="text/javascript">
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;
}
</script>