# 给定基数的字符串的整数

13

``````to_string(351837066319, 31) => "codegolf"
``````

2

sepp2k 2011年

`at 0:00`，当，完美。

4

## dc-43个字符

``````[sb[58-]s_[lb~dZ39*+dB3<_9+rd0<xrP]dsxxk]sf
``````

``````[[58-]s_dSb~dZ39*+dB3<_9+SadLbr0<fLaPc]sf
``````

``````?o[58-]s_[O~dZ39*+dB3<_9+rd0<xrP]dsxx
``````

4

# Ruby 1.8-75个字符，具有递归功能。

``f=proc{|n,b|(n<b ? "":f[n/b,b])+([*'0'..'9']+[*'a'..'z']+[*'A'..'Z'])[n%b]}``

### 没有递归

``f=proc{|n,b|d=[*'0'..'9']+[*'a'..'z']+[*'A'..'Z'];s=d[n%b];s=d[n%b]+s while(n/=b)>0;s}``

（均基于Dogbert的1.9解决方案。）

4

# 的Python-86

``````from string import*
def t(n,r,s=''):
while n:s=printable[n%r]+s;n/=r
return s or'0'``````

3

# 蟒蛇，93 99

``````from string import *
d=digits+letters
def t(n,b):
s=''
while n>0:s=d[n%b]+s;n/=b
return s or '0'``````

2

# dc，61个字符

``````[sr[lr~rd0<x]dsxxk[39+]sa[58-]sb[d9<ad78<b48+anz0<p]dspxIP]sf
``````

``````dc -e'[sr[lr~rd0<x]dsxxk[39+]sa[58-]sb[d9<ad78<b48+anz0<p]dspxIP]sf' -e'351837066319 31 lfx'
``````

``````dc -f base.dc -e '351837066319 31 lfx'
``````

1

Nabb 2011年

2

# 红宝石-72 70 59字符

``````f=->n,b{(n<b ? "":f[n/b,b])+[*?0..?9,*?a..?z,*?A..?Z][n%b]}
``````

## 没有递归，70个字符

``````f=->n,b{d=*?0..?9,*?a..?z,*?A..?Z;s=d[n%b];s=d[n%b]+s while(n/=b)>0;s}
``````

``````irb(main):080:0> f[351837066319, 31]
=> "codegolf"
irb(main):081:0> f[0, 31]
=> "0"
``````

1

``````m=divMod
d(0,x)b=[f x]
d(r,x)b=f x:d(m r b)b
f=(!!)\$['0'..'9']++['a'..'z']++['A'..'Z']
s x b=reverse\$d(m x b)b
``````

1

## Befunge-53 x 2 = 106个字符

``````11p01-\>:11g%\11g/:#v_\$>:1+!#v_:45+`!#v_:75*`!#v_   v
^            <  ^,    \$# +"0"  < +"'"   <-":"<
``````

``````&56*1+    11p01-\>:11g%\11g/:#v_\$>:1+!#v_:45+`!#v_:75*`!#v_   v
^            <  ^,    \$# +"0"  < +"'"   <-":"<
@
``````

1

## Golfscript-32个字符

``````{base{.9>39*+.74>58*48--}%''+}:f
``````

1

# 红宝石1.9 - 80 74 68

t =-> n，b {d = ？0 ..？9，？a ..？z，*？A ..？Z; s ='';（s = d [n％b] + s; n / = b）而n> 0; s}

``t=->n,b,s=''{d=*?0..?9,*?a..?z,*?A..?Z;(s=d[n%b]+s;n/=b)while n>0;s.empty?? ?0: s}``

Ruby 1.9-不幸的是，仅适用于基础36：

``t=->n,b{n.to_s(b)}``

2

Nemo157 2011年

1

# Bash，79个字符

``````f(){
dc<<<\$2o\$1p|perl -pe"y/A-Z/a-z/;s/ \d+/chr\$&+(\$&<10?48:\$&<36?87:29)/ge"
}``````

BC_BASE_MAX被记录为16。我不知道是什么奇迹使输出正确地出现在样本输入上，但是它为大多数其他碱基输出了垃圾（即非字母数字字符）。
JB

@JB：您使用哪个BC？GNU bc应该工作。`sysconf(_SC_BC_BASE_MAX)`在我的系统上返回99，最低要求是16。
ninjalj 2011年

@JB：还请注意，以前的修订存在错误，我只是略过了问题要求。
ninjalj 2011年

JB

1

Nabb 2011年

1

# Python 2，66个字节

``````from string import*
f=lambda n,b:n and f(n/b,b)+printable[n%b]or''``````

1

# 滑稽，4字节

``````peB!
``````

``````pe # Parse and push
B! # Convert base
``````

0

# Perl`-Minteger -ap` 5，52个字节

``do{\$\=(0..9,a..z,A..Z)[\$_%\$F[1]].\$\}while\$_/=\$F[1]}{``

-1

# JavaScript 170字节

``````function f1(ni,nr){
let s1='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
let s2='';
while(ni>0){
s2=s1[ni%nr]+s2;
ni=Math.floor(ni/nr);
}
return s2;
}``````

Jo King

Jo King

@JoKing不，谢谢。