JScript+WSHでプログラミング基礎100本ノック その39 実践4 コラッツ予想

その39 コラッツ予想

課題

コラッツ予想は、
どんな正の整数に対しても、
 ・偶数なら2で割る
 ・奇数なら3倍して1を足す
の操作を繰り返したら必ず1になる
といったものです。
これを実装し、数字がどのように変化していくか出力してください。
また、調べる数は123456789とします

コード例

main.js
--------

var num = 123456789;	// 調べる数
var cnt = 0;		// 処理回数
while(true){

	WScript.echo(cnt + " : " + num);
	cnt++;

	if(num == 1){
		break;
	}else if(num % 2 == 0){
		num = num /2;
	}else if(num % 2 == 1){
		num = num * 3 + 1;
	}else{
		WScript.echo("正の整数を指定してください");
		break;
	}
}

出力結果

0 : 123456789
1 : 370370368
2 : 185185184
3 : 92592592
4 : 46296296
5 : 23148148
6 : 11574074
7 : 5787037
8 : 17361112
9 : 8680556
略
169 : 40
170 : 20
171 : 10
172 : 5
173 : 16
174 : 8
175 : 4
176 : 2
177 : 1
続行するには何かキーを押してください . . .


この記事が気に入ったらサポートをしてみませんか?