JavaScript史上最も完全で、最も簡単な小例で、後悔シリーズを見ない(一)


1.計算10の乗算:
//   10   
//     ,  
var jc = 1;
//       
for(i = 1;i <= 10;i++){
     
    jc *= i;
}
//     
console.log(jc);    // 3628800

2.円の周長、半径を計算します.
//      80
var r = 80;
//     
var h = 2*Math.PI*r;
//     3   
var h = h.toFixed(3);
//     
var s = Math.PI*r*r;
var s = s.toFixed(3);

3.洪水に抵抗するため、戦士は89時間戦い、89時間を計算すると何日に何時間加算されますか.
//     
var h = 89;
//   
var day = parseInt(h/24);
//       
var hour = h%24;

4.80華氏の温度が摂氏数に等しいかを計算する.
//       hua,  80
var hua = 80;
//      
var she = 5/9.0*(hua-32);
//   3   
she = she.toFixed(3);

5.90度から弧度に変換した回数(結果は3桁の小数点以下を保持):
 var angle = 90;
    //    
    var radian = Math.PI/180*angle;
    //     3   
    var radian = radian.toFixed(3);

6.点数を入力し、成績等級(if、switchの2種類の表記)を判定する.
//if   :
//         
var ach = 10;
//     
if(ach >= 0 && ach < 60){
     
    console.log("     ");
}else if(ach >=60 && ach < 80){
     
    console.log("    ");
}else if(ach >=80 && ach < 100){
     
    console.log("    ");
}else if(ach == 100){
     
    console.log("     ");
}else{
     
    console.log("   1-100   ");
}
//        
var ach= 88;
switch(true){
     
   case ach >= 0 && ach < 60:
   console.log("     ");
   break;
   case ach >= 60 && ach < 80:
   console.log("    ");
   break;
   case ach >= 80 && ach < 100:
   console.log("    ");
   break;
   case ach == 100:
   console.log("     ");
   break;
   default:
   console.log("   1-100   ");
}

7.月を入力し、その月の日数を表示し、caseを使用して透過します.
//    
    var mon = 6;
    //    
    switch(mon){
     
        // 2 
        case 2:
        console.log("  29 、  28 ");
        break;
        // 31 
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
        console.log("   31 ");
        break;
        // 30 
        case 4:
        case 6:
        case 9:
        case 11:
        console.log("   30 ");
        break;
        default:
        console.log("   1-12   ");
    }

8.日付によって、この日がこの年の何日目かを判断する(switchでスルー):
var year = 2016;
 var mon =2;
 var day = 11;
 var allday = 0;
 switch(mon - 1){
     
     case 11:
     allday += 30;
     case 10:
     allday += 31;
     case 9:
     allday += 30;
     case 8:
     case 7:
     allday += 31;
     case 6:
     allday += 30;
     case 5:
     allday += 31;
     case 4:
     allday += 30;
     case 3:
     allday += 31;
     case 2:
         if(year % 4 == 0 && year % 100 !=0 || year % 400 == 0){
     
             allday += 29;
         }else{
     
             allday += 28;
         }
     case 1:
     allday += 31;
     break;
 }
     console.log(allday + day);     // 42

9.入社給料10 k、毎年5%上昇して、50年後の給料はいくらですか?
var sal = 10;
    //     
    for(var i = 1;i <= 50;i++){
     
        sal *= 1.05;
    }

10.100以内の奇数を印刷し、すべての奇数の合計を印刷します.
var sum = 0;
//     
for(var i = 1;i <= 100;i++){
     
    //     
    if(i % 2 ==1){
     
        //   100   
        console.log(i);   // 1 3 5 7 ... 97 99
        //   100    
        sum += i;
    }
}

11.ページ印刷20-80の間で3で割り切れる数、5行ごとに
var j =0;
//     
for(var i = 20;i <= 80;i++){
     
   //     
   if(i % 3 == 0){
     
       //     
       document.write(i+"&nbsp");
       j++;
       //   5   
       if(j % 5 == 0){
     
           document.write("
"
); } } }

12.印刷100-200の間に3または7で割り切れるすべての数:
for(var i = 100;i <= 200;i++){
     
   //      
   if(i % 3 == 0 && i % 7 == 0){
     
       //     
       console.log("100-200      3 7     :"+i);  // 105 126 147 168 189
   }
}

13.1+2を求める!+3!+…+20!の値:
//        0
varsum = 0;
//     
for(var i = 0;i <= 20;i++){
     
    //         1
    var num = 1;
    //       
    for(var j = 1;j <= i;j++){
     
        num *= j;
    }
    //       
    sum += num;     
}

14.1/1-1/2+1/3-1/4…1/100の和を求める:
var sum = 0;
//     
for(var i = 1;i <= 100;i++){
     
    if(i % 2 == 1){
     
        //     
        sum += (1/i);
    }else{
     
        //     
        sum -= (1/i); 
    }
}

15.1つの碁盤があって、64個の四角い格子があって、第1の四角い格子の中で1粒のゴマの重量の0.00001 kgを入れて、第2の中で2粒を入れて、第3の中で4粒を入れて、碁盤の上ですべてのゴマの粒の和を求めます:
var sum = 0;
var chu;
//     
for(var i = 0;i < 64;i++){
     
    // 2 i    
    sum += Math.pow(2,i);
}
//    
chu = sum * 0.00001;

16.99乗算表:
//  
for(var i=1;i<=9;i++){
     
    //  
    for(var j=1;j<=i;j++){
     
        //     
        document.write(i+"*"+j +"="+i*j+"  ");
    }
    //      
document.write("
"
); }

17.関数を作成し、2つの数の和差積商を計算する.
 //     
function num(a,b,fh){
     
   //     
   switch(fh){
     
       case "+":
       console.log("      :" + a+b);
       break;
       case "-":
       console.log("      :" + a-b);
       break;
       case "*":
       console.log("      :" + a*b);
       break;
       case "/":
       console.log("      :" + a/b);
       break;
   }
}
   num(66,88,"*");

18.1つの関数を作成して、ページの上で1つのN行M列の表を印刷して、表の内容は0-100のランダムな数字を埋めます:
 //     
function bg(m,n){
     
    //       
    document.write("");//      for(var i=0;i<=m;i++){
     //      
        document.write("");//      for(var j=0;j<=n;j++){
     //      
                document.write("");}
        document.write("/");}
    document.write("
"); // document.write(Math.round(Math.random()*100)); document.write("
"
) } bg(5,5);

19.バスケットボールを5メートルの高さから落下して、毎回元の60%に上昇して、何回の落下を求めて、高さは0.1メートル未満です:
var h = 5;
var cs= 1;
//     
while (true) {
     
    h *= 0.6;
    //   
    if(h < 0.1){
     
        //     
        console.log(cs);
        //   
        break;
    }
    //   
    cs++;
}

20.ページに任意の数字を入力し、ボタンをクリックしてその数字の階乗を計算する.
function jc (n){
     
   if(n == 1){
     
       return 1;
   }
   return jc(n - 1)*n;
}
var btn = document.getElementById("btn");
var ipt = document.getElementById("ipt");
btn.onclick = function(){
     
   var m = parseInt(ipt.value);

   var result = jc(m);
   console.log("       :"+result);
}

21.1,1,2,3,5,8,13,21…から10位(フィボナッチ):
function fn(n){
     
   if(n === 1 || n === 2){
     
       return 1;
   }else{
     
       return fn(n - 1) + fn(n - 2);
   }
}
var num = fn(10);

22.関数を作成し、nが偶数である場合、呼び出し関数は1/2+1/4+1/6+...+1/nを求める.入力nが奇数の場合、呼び出し関数1/1+1/3+1/5+...+1/n:
function fn(n){
     
   if (n == 1){
     
       return 1;
   }else if(n == 2){
     
       return 1/2;
   }
   return 1/n + fn(n - 2);
}
var btn = document.getElementById("btn");
var ipt = document.getElementById("ipt");
btn.onclick = function(){
     
   var n = parseInt(ipt.value);
   var sum = fn(n);
   console.log("  :"+sum);
}

23.任意の2つの数字の間で構成できる奇数の個数を計算する関数を作成し、数字は1桁でなければならない.例えば、0-3の間で構成できる奇数を計算するのは、01,03,13,21,23,31である.
function num(n,m){
     
 var count = 0;   //        
 if (n > m){
     
     var i = n;
         n = m;
         m = i;
 }
 console.log(n,m);
 for(var j = n;j<=m;j++){
     
     if(j%2 == 1){
     
         for(var k=n;k<=m;k++){
     
             var str = ""+k+j;
             console.log(str);
             //         , ++
             count++;
         }
     }
 }
 return count;
}

24.1つの関数を書く:4桁の数で、それぞれの数字に5を加えて、それから10で割った余剰数でその数字の代わりに、第1位と第4位を交換して、第2位と第3位を交換して、原文を入力して、暗号文を出力する.例:8848→3933:
//     
function fn(n){
     
   var gw = parseInt(n/1) % 10;
   var sw = parseInt(n/10) % 10;
   var bw = parseInt(n/100) % 10;
   var qw = parseInt(n/1000) % 10;

   console.log("       :" + qw,bw,sw,gw);
   //        5,     10
   gw = (gw + 5) % 10;
   sw = (sw + 5) % 10;
   bw = (bw + 5) % 10;
   qw = (qw + 5) % 10;
   //     、  
   var num1 = sw;
       sw = bw;
       bw = num1;
   //     、  
   var num2 = gw;
       gw = qw;
       qw = num2;

   return "" + qw + bw + sw + gw;
}
console.log("   :" + fn(8848));

25.関数map(arr)を記述し、配列の各数字を30%増やし、新しい配列を返します.
function map(arr){
     
	var a = [];
	for(var i=0;i<arr.length;i++){
     
		a.push(arr[i] * 1.3);
	}
	return a;
}
var num = [1,2,3,4,5];
console.log(num);
var res = map (num);
console.log(res);
console.log(num);