階乗の計算です
前に2chのまとめサイトか何かで
4!=24
が問題になっていましたが
これが階乗です。
4!の場合
4!=4x3x2x1=24
になります。
今回は
1~9までの階乗を答えていただく問題です。
あまり数が多くても計算が大変ですので9までにしました。
JAVASCRIPTのプログラムで書いたのですが
階乗は計算しておりません。
switchで場合分けをして
問題が4の場合正答は24と
代入して
答えていただいた数値と比べています。
サンプルは
階乗
ソースは下記
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<script src="jq/jquery-1.10.2.min.js"></script>
<title>階乗</title>
<meta name="keywords" content="ゲーム,かいじょう,階乗,問題,クイズ">
<meta name="description" content="かいじょうの問題(ドリル・クイズ)などができるHPです。JAVASCRIPTで作製しています。">
</head>
<script type="text/javascript"><!--
myHit = 0;
myNowCnt = 0; // 問題を出すテーブルカウンタ
myLastCnt = 10; // 問題の数
var myy1,ayy1;
function mySet(){
myy1 = Math.floor(Math.random()*9)+1;
document.myForm.myFormQ1.value = myy1; // 数値
document.myForm.myFormA1.value = ""; // 数値
}
// 入力した答えが正解か不正解かを判定する関数 (答えを入力して、[OK]ボタンを押した時の処理)
function myCheck(){
myQ1 = eval(document.myForm.myFormQ1.value); // 入力された数値 を取得
myA1 = eval(document.myForm.myFormA1.value); // 入力された数値 を取得
switch ( myQ1 ) {
case 1:
ayy1=1;
break;
case 2:
ayy1=2;
break;
case 3:
ayy1=6;
break;
case 4:
ayy1=24;
break;
case 5:
ayy1=120;
break;
case 6:
ayy1=720;
break;
case 7:
ayy1=5040;
break;
case 8:
ayy1=40320;
break;
case 9:
ayy1=362880;
break;
}
if ( ayy1 == myA1){ // 答えと入力した値は等しいか(正解か)?
myHit++;
document.ytr001.mes01.value = ("あたり! (^_^)");
}else{
document.ytr001.mes01.value = ("はずれ ! こたえは"+ayy1+"です !");
}
mySet(); // 次の問題をセット
if (myNowCnt==myLastCnt-1){ // 問題終わった?
myScore = myHit*10; // 得点計算
document.ytr002.mes02.value =("問題終了です。"+myLastCnt+"問中"+myHit+"問正解。点数は"+myScore+"点です。");
myNowCnt=0;
myHit=0;
}else{ // 次の問題へ
myNowCnt++;
document.ytr002.mes02.value =(+myNowCnt+"問中"+myHit+"問正解。");
myQues();
}
}
// -->
</script>
<body>
<!-- admax -->
<script type="text/javascript" src="http://adm.shinobi.jp/s/82885b29005a503f8b0ecb68b21811c2"></script>
<!-- admax -->
<!-- 階乗の問題フォームを設置 -->
<h1>階乗</h1>
<form name="myForm">
さて、もんだいです。次の階乗の答えを入力してください。
<br><br>
ちなみに<br>
n!=nx(n-1)x(n-2)........2x1<br>
です<br><br>
例<br>
10!=10x9x8x7x6x5x4x3x2x1=3628800<br>
です<br>
<br>
<input type="text" size="4" name="myFormQ1">!<br>
=<input type="text" size="4" name="myFormA1">
<br>
<input type="button" value="OK" onclick="myCheck()">
</form>
<form name="ytr001">
<input type="text" size="100" style="border-style:none;background-color:#FFFFFF;" name="mes01">
</form>
<form name="ytr002">
<input type="text" size="100" style="border-style:none;background-color:#FFFFFF;" name="mes02">
</form>
<script type="text/javascript"><!--
mySet(); // 初回の問題をフォームへセット
// --></script>
<br>
<a href="http://tasarotoste.zouri.jp/">TOPへ</a>
<br>
<!-- admax -->
<script type="text/javascript" src="http://adm.shinobi.jp/s/7c43f868a03d3682223e8a968c23b100"></script>
<!-- admax -->
<br><br>
</body>
</html>