今天看到尉迟方出了个小的面试题:http://www.cnblogs.com/realfun/archive/2005/04/13/136499.html,因此自己也不妨写了一个程序玩玩:)

题目如下:

用过excel的都知道excel的列编号是这样的:
a b c .... z aa ab ac .... az ba bb bc .... yz za zb zc .... zz aaa aab aac ....
分别代表以下编号:
1 2 3 .... 26 27 28 29 .... 52 53 54 55 .... 676 677 678 679 .... 702 703 704 705 ....

请写个函数,完成从一个正整数到这种字符串之间的转换。

程序如下:
using System;

namespace ConsoleApplication1
{
    
class Class1
    
{
        
static void Main()
        
{
            
for (int i = 1; i <= 999; i++)
            
{
                Console.Write(
"{0,3}->{1,3}\t", i, Int2Excel(i));
            }

            Console.ReadLine();
        }


        
public static string Int2Excel(int i)
        
{
            
string s = "";

            
int m = i % 26;
            i 
= i / 26;
            
while (i != 0 || m != 0)
            
{
                
if (m == 0)
                
{
                    i
--;
                    m 
= 26;
                }

                s 
= Convert.ToChar(m + Convert.ToInt32('A'- 1).ToString() + s;

                m 
= i % 26;
                i 
= i / 26;
            }


            
return s;
        }

    }

}

posted on 2005-04-13 15:17  Laser.NET  阅读(3505)  评论(11编辑  收藏  举报
无觅相关文章插件,快速提升流量