話題の10分コーディングをやってみたんだけど、残念な出来にしかならなかった

ネタ元。10分以内に作ることは心がけたけど、結果は残念な感じに。

<html>
<body>
<script type="text/javascript">
/*
function calc(count, cards) {
	var result = document.getElementById("result");
	if (!count)
		result.innerHTML = "impossible";

	var l = cards.length % count;
	if (l)
		cards = cards.slice(0, -l); // 分岐しているのが美しくない。

	var r = new RegExp("(.).{0," + (count - 1) + "}", "g"),
	    a = [];

	for (var i = 0; i < count; ++i) {
		a[i] = cards.slice(i).replace(r, "$1"); // for文回しているのが美しくない
	}
	result.innerHTML = a;
}
*/
function calc(count, cards) {
	var result = document.getElementById("result");
	if (!count)
		result.innerHTML = "impossible";

	var l = ~~(cards.length / count) * count,
	    r = new RegExp("(.).{0," + (count - 1) + "}", "g"),
	    a = [];

	for (var i = 0; i < count; ++i) {
		a[i] = cards.slice(i, l).replace(r, "$1");
	}
	result.innerHTML = a;
}
</script>
<form onsubmit="calc(+this.count.value,this.cards.value.replace(/\D/g,''));return false">
<input size="40" id="count" value="3"><br>
<input size="40" id="cards" value="123123123"><br>
<input type="submit" value="calc">
</form>
<div id="result"></div>
</body>
</html>

全然スマートじゃなくて泣ける。