wired raven

文字通りの日記。主に思ったことやガジェットについて

FizzBuzz問題

JavaScriptで適当に考えてみた。
試行錯誤などにかなり時間をかけていたので、しっかりとしたプログラマにはほど遠そうである。

オーソドックスに

<html>
<head>
	<title>FizzBuzz 1</title>
</head>
<body>
</body>
<script type="text/javascript"><!--
	var strAns;

	for(i=1; i<101; i++)
	{
		// なんでもなければ
		strAns = i;

		// 3の倍数の時
		if((i%3) == 0)
		{
			strAns = "Fizz";
		}

		// 5の倍数の時
		if((i%5) == 0)
		{
			strAns = "Buzz";
		}

		// 3の倍数でかつ5の倍数の時
		if(((i%3) == 0) && ((i%5) == 0))
		{
			strAns = "FizzBuzz";
		}

		// strAnsの出力
		document.write(strAns);
		document.write("<br>");
	}
//--></script>
</html>

カウンタまみれ

<html>
<head>
	<title>FizzBuzz 2</title>
</head>
<body>
</body>
<script type="text/javascript"><!--
	var numFor;
	var numCnt1 = 0;
	var numCnt2 = 0;
	var numCnt3 = 0;
	var strAns;

	for(numFor = 1; numFor < 101; numFor++)
	{
		numCnt1++;
		numCnt2++;
		numCnt3++;

		strAns = numFor;

		if(numCnt1 == 3) {
			strAns = "Fizz";
			numCnt1 = 0;
		}
		if(numCnt2 == 5) {
			strAns = "Buzz";
			numCnt2 = 0;
		}
		if(numCnt3 == 15) {
			strAns = "FizzBuzz";
			numCnt3 = 0;
		}

		document.write(strAns);
		document.write("<br>");
	}

//--></script>
</html>

ちとシンプルに

<html>
<head>
	<title>FizzBuzz 3</title>
</head>
<body>
</body>
<script type="text/javascript"><!--
	var numFor;
	var numCnt = 0;

	for(numFor = 0; numFor < 100; numFor++)
	{
		numCnt = numFor + 1;

		if(numCnt%3 == 0) {
			document.write("Fizz");
		}
		else if(numCnt%5 == 0) {
			document.write("Buzz");
		}
		else if(numCnt%15 == 0) {
			document.write("FizzBuzz")
		}
		else {
			document.write(numCnt);
		}

		document.write("<br>");
	}

//--></script>
</html>

括弧やら何やら削って圧縮

<html>
<head>
	<title>FizzBuzz 4</title>
</head>
<body>
</body>
<script type="text/javascript"><!--
	var numFor;
	var numCnt = 0;

	for(numFor = 1; numFor < 101; numFor++)
	{
		if(numFor % 3 == 0) document.write("Fizz");
		else if(numFor % 5 == 0) document.write("Buzz");
		else if(numFor % 15 == 0) document.write("FizzBuzz");
		else document.write(numFor);
		document.write("<BR>");
	}

//--></script>
</html>