#/*********************************************************** # collatz.rb -- Collatz (コラッツ) の予想 #***********************************************************/ ULONG_MAX = 4294967295 LIMIT = ((ULONG_MAX - 1) / 3) printf("n = "); n = gets.to_i while (n > 1) if (n & 1 != 0) # 奇数 if (n > LIMIT) printf("\nOverflow\n"); return 1 else; n = 3 * n + 1; end else; n /= 2; end printf(" %d", n) end printf("\n") exit 0