C#怎么根据传入 的数字 返回对应数字的字母编码呢

a_taoge 2014-11-13 10:29:46
给一个方法传送一个数字 ,就返回这个长度的数组,里面对应的值是A——Z,如果超过26个英文字母后面再累加一次A——Z 比如是:传的数字小于等于26 那么返回A——Z的对应数字的数组 如果超过的话 后面接着就是aa、ab、ac....

比如 给方法传一个 5 返回一个string[]数组 里面是a——e
给方法传一个 26 返回一个string[]数组 里面是a——z
给方法传一个 30 返回一个string[]数组 里面是a——ad

和excel 最左侧的编码一样
这个方法怎么写呢,求大师帮帮忙
...全文
414 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
X_SpringSun 2014-11-13
  • 打赏
  • 举报
回复

 public void Fuction(int num)
        {
            string[] word = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
            if (num <= 26)
            {
                for (int i = 0; i < num; i++)
                {
                    Console.Write(word[i] + ",");
                }
            }
            else
            {
                con(num / 26, num % 26, "");
            }
        }


        public void con(int order,int left, string s)
        {
            string[] word = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
            if (order < 1) 
            {
                for (int k = 0; k < left; k++)
                {
                    Console.Write(s + word[k] + ",");

                }
                return;
            }
           

            for (int k = 0; k < 26; k++)
            {
               
                Console.Write(s + word[k] + ",");

            }
            order-=1;
            s += "a";
            con( order, left, s);
        }
我现在在路上 2014-11-13
  • 打赏
  • 举报
回复
a_taoge 2014-11-13
  • 打赏
  • 举报
回复
谢谢了,自己已经解决了
exception92 2014-11-13
  • 打赏
  • 举报
回复
超过的话 不是该累加么?不是 a,,,,,,,z,a,,d 这样么?

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧