算額あれこれ

算額問題をコンピュータで解きます

おかしな仕様のプログラム

整数表記で,数字の 1 桁ごとに、0~9 の値は「00, 01, 02, 03, 04, 10, 11, 12, 13, 14」の 2 桁の値に変換する。

「特定の言語で,特定の機能を使わないでプログラムする」ということだが,そんな条件にどんな意味があるというのかわからん。


func = function(n) {
  func2 = function(m) {
    sprintf("%i%i", m %/% 5, m %% 5)
  }
  ans = character(1)
  count = 0
  repeat {
    if (n == 0) return(paste(rev(ans), collapse=""))
    count = count+1
    ans[count] = func2(n %% 10)
    n = n %/% 10
  }
}
for (i in c(1:15, 99, 100))  {
  print(func(i))
}