我的想法是:将A~Z分解成26进制的数。比如"ABB"A为1,B为2,以此类推,则ABB为26的平方加1,加上,26的1次方+2 ,加上26的0次方+2 结果为 1378. 现在我的算法能实现由字母转换到数字。但是,没有好的方法,将转化好的1378还原回“ABB”,我按以前学的进制转换来处理的方法,对其进行处理不好使。请教各位高手请还有好的方法,帮小弟解决一下这个问题,谢谢!
调试欢乐多
int i = (int)'A';
//或
byte bt = (byte)'A';//反过来一样
char c = (char)i;
//或
char c = (char)bt;
for (int i = 1; i < 500;i++)//五百以内
{
//实现你要的功能
sbW = new StringBuilder();
int n = i;
while (n != 0)
{
if (n % 26 == 0)
{
sbW.Insert(0, 'Z');
n = n / 26 - 1;
}
else
{
sbW.Insert(0, (char)((n % 26 - 1) + 'A'));
n /= 26;
}
}
Console.WriteLine(i.ToString() +"\t" +sbW.ToString());//输出
}
题目说的是字符,怎么里面变成字符串了
//可以事先初始化一个整形数组arr[],存放26的幂
int i = 0;
int mi = 1;
while(mi<int.MaxValue)
{
arr[i] = mi;
mi *= 26;
i++;
}//循环用数组中的数比较,然后取余即可