private static int nToStop;
private static int nCounter;
private static bool bContinue = true;
private static string ssOut = "";
private static void Do(ref char a, ref char b)
public static void GetPer(char[] word)
Program.GetPer(word, 0, m);
private static void GetPer(char[] word, int k, int m)
ssOut = new string(word);
for (int i = k; i <= m; i++)
Program.Do(ref word[k], ref word[i]);
Program.GetPer(word, k + 1, m);
Program.Do(ref word[k], ref word[i]);
public static int nPr(int n, int r)
return Program.FcDv(n, n - r);
private static int Fc(int i)
return i * Program.Fc(i - 1);
public static string ToR(int number)
if (number < 0 || number > 3999)
return "M" + Program.ToR(number - 1000);
return "CM" + Program.ToR(number - 900);
return "D" + Program.ToR(number - 500);
return "CD" + Program.ToR(number - 400);
return "C" + Program.ToR(number - 100);
return "XC" + Program.ToR(number - 90);
return "L" + Program.ToR(number - 50);
return "XL" + Program.ToR(number - 40);
return "X" + Program.ToR(number - 10);
return "IX" + Program.ToR(number - 9);
return "V" + Program.ToR(number - 5);
return "IV" + Program.ToR(number - 4);
return "I" + Program.ToR(number - 1);
public static string DoR(string s)
char[] array = s.ToCharArray();
for (int i = 0; i < array.Length; i++)
array[i] = (char)(array[i] + 1);
return new string(array).ToLower();
private static int FcDv(int topFc, int divFc)
for (int num2 = topFc; num2 > divFc; num2--)
public static string text() {
string text = "cathhtkeepaln";
int num2 = nPr(text.Length, text.Length);
char[] word = text.ToCharArray();
public static void Main()
char[] daysArray = days.ToCharArray();
Array.Reverse(daysArray);
for (int i = 0; i < daysArray.Length; i++)
daysArray[i] = (char)(daysArray[i] - 1);
days = new string(daysArray).ToUpper();