请教简便的解法
题目:    假设有一段程序对字符串进行加密,加密后字符串的第一个字符是原字符串的最后一个字符,其余的每个字符是对应的原字符串中的前一个字符加上3 。比如"welcome”,末尾的字符为"e" ,"welcom“依次加上3后成为"zhofrp",故加密后的结果为”ezhofrp“.程序由用户任意输入一个字符串,加密后输出。在不考虑大小写的问题、输入的是否是字母问题的情况下我是这样写的:
static void Main(string[] args)
        {
            Console.WriteLine("输入字符串:");
            string s=Console.ReadLine();
            char[] s1 = new char[s.Length];//给s1分配与s等长的内存空间
            s1[0]=s[s.Length-1];      //把原字符串的最后一个字符赋给s1[0]
            for (int i = 1; i < s.Length; i++)   //从s1[1]的位置开始赋值
            {
                    //如果字符=x,将其+3后为a。以此类推
                    if (s[i - 1] >= 'x')    
                    {
                        s1[i] = (char)('c' - ('z' - s[i - 1]));
                    }
                    else
                    {
                        s1[i] = (char)(s[i - 1] + 3);
                    }
                }
               //循环输出加密后的字符串(s1). 
            for (int i = 0; i < s1.Length; i++)
            {
                Console.Write(s1[i]);
            }
        }
请教简便的解法