華氏温度:
<script type="text/javascript">
function conv(x) {
document.getElementById("fahrenheit").value = 1.8 * parseFloat(x.value) + 32;
}
</script>
<p><label for="celsius">摂氏温度:</label> <input id="celsius" onchange="conv(this);"></p> <p>華氏温度: <input id="fahrenheit" readonly></p>
数値を入力するには,いったん文字列を入力して,その中から数値を取り出すことになります。
文字列 s を整数に変換するには parseInt(s),浮動小数点の数値に変換するには parseFloat(s)
を使います。それぞれ整数の英語 integer,浮動小数点の英語 floating point に因む名前です。
出力欄:
やっていることは,偶数なら2で割り,奇数なら3倍して1を加えることを繰り返しているだけです。
function collatz() {
var x = parseInt(document.getElementById("input").value);
var u = document.getElementById("output");
while (x > 1) {
var t = document.createTextNode(x + ' → ');
u.appendChild(t);
if (x % 2 == 0) {
x = x / 2;
} else {
x = 3 * x + 1;
}
}
t = document.createTextNode(x + ' 終了 ');
u.appendChild(t);
}
これが無限ループにならずに1に落ち着くことはまだ証明されていませんが,実験的には確からしいようです。
Last modified: 2012-04-18 10:16:04