也许我在数学方面还不够好,但是我在将数字转换为纯字母的Bijective Hexavigesimal方面遇到了问题,就像Microsoft Excel/OpenOffice Calc一样.
这是我的代码的一个版本,但没有给我我需要的输出:
var toHexvg = function(a){
var x='';
var let="_abcdefghijklmnopqrstuvwxyz";
var len=let.length;
var b=a;
var cnt=0;
var y = Array();
do{
a=(a-(a%len))/len;
cnt++;
}while(a!=0)
a=b;
var vnt=0;
do{
b+=Math.pow((len),vnt)*Math.floor(a/Math.pow((len),vnt+1));
vnt++;
}while(vnt!=cnt)
var c=b;
do{
y.unshift( c%len );
c=(c-(c%len))/len;
}while(c!=0)
for(var i in y)x+=let[y[i]];
return x;
}
我努力的最佳结果是:a b c d ... y z ba bb bc- 虽然不是上面的实际代码.预期的输出是a b c ... y z aa ab ac ... zz aaa aab aac ... zzzzz …
我需要将1到6000000之间的数字转换为像ABCDE这样的字母组合.少写字母更好.但我猜我需要4或5.
有人能指出我正确的方向,如何编写一个算法将数字转换为字母和背面?只有AZ.(帽).