编写一个应用程序用来输入的字符串进行加密,对于字母字符串加密规则如下:"a→d’ ‘b"→’e’ ‘w’→z" ...... x"→’a’ ‘y"→b" ‘z→c’ ‘A’→’D’ ‘B"→’E’ ‘W’→’Z’ ‘X’→’A’ ‘Y’→’B’ ‘Z’→’C’ ?对于其他字符,不进行加密。
(资料图片)
static void Main(string[] args) { string str = Console.ReadLine(); Char[] chars = str.ToCharArray(); for (int i = 0; i < chars.Length; i++) { if ((chars[i] >= "a" && chars[i] <= "z") || (chars[i] >= "A" && chars[i] <= "Z")) { chars[i] = (char)(chars[i] + 3); if ((chars[i] > "z" && chars[i] <= "z" + 3)||(chars[i] > "Z" && chars[i] <= "Z" + 3)) { chars[i] = (char)(chars[i] -26); } } } foreach (char c in chars) { Console.Write(c); } Console.ReadKey(); }
输入(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。
【假设输入的数字以空格字符隔开,例:23 15 45 78 】
static void Main(string[] args) { string str = Console.ReadLine(); string[] strArray = str.Split(" "); int[] intArray = new int[strArray.Length]; for (int i = 0; i < intArray.Length; i++) { intArray[i] = int.Parse(strArray[i]); } int min = intArray[0]; int minIndex = 0; for (int i = 1; i < intArray.Length; i++) { if (intArray[i] < min) { min = intArray[i]; minIndex = i; } } intArray[minIndex] = intArray[0]; intArray[0] = min; foreach (var item in intArray) { Console.Write(item + " "); } Console.ReadKey(); }
有 n (n<=100) 个整数,已经按照从小到大顺序排列好,现在另外给一个整数 x ,请将该数插入到序列中,并使新的序列仍然有序。
static void Main(string[] args) { int[] array = { 2, 3, 5, 10, 89 }; int target = int.Parse(Console.ReadLine()); int index = 0; bool isFound = false; for (int i = 0; i < array.Length - 1; i++) { if (target >= array[i] && target <= array[i + 1]) { index = i; isFound = true; break; } } List list = array.ToList(); if (isFound) { list.Insert(index + 1, target); } else { if (target < list[0]) { list.Insert(0, target); } else { list.Add(target); } } array = list.ToArray(); for (int i = 0; i < array.Length; i++) { Console.Write(array[i] + " "); } Console.ReadKey(); }
编写一个控制台程序,要求用户输入一组数字用空格间隔,对用户输入的数字从小到大输出。(
Array.Sort()
方法和冒泡排序)
Array.Sort
static void Main(string[] args) { string[] strArray = Console.ReadLine().Split(" "); int[] intArray = new int[strArray.Length]; for (int i = 0; i < intArray.Length; i++) { intArray[i] = int.Parse(strArray[i]); } Array.Sort(intArray); for (int i = 0;i < intArray.Length; i++) { Console.Write(intArray[i]+" "); } Console.ReadKey(); }
static void Main(string[] args) { string[] strArray = Console.ReadLine().Split(" "); int[] intArray = new int[strArray.Length]; for (int i = 0; i < intArray.Length; i++) { intArray[i] = int.Parse(strArray[i]); } for (int i = 0; i < intArray.Length-1; i++) { for (int y = 0; y < intArray.Length-1; y++) { if (intArray[y] > intArray[y+1]) { int temp = intArray[y]; intArray[y]= intArray[y+1]; intArray[y+1]= temp; } } } foreach (var item in intArray) { Console.Write(item+" "); } Console.ReadKey(); }
输入一个字符串,判断其是否是C#合法标识符。
【合法标识符即合法命名】 - 字母、数字、下划线
static void Main(string[] args) { char[] chars = Console.ReadLine().ToCharArray(); bool isLeagal = true; if ((chars[0] >= "0" && chars[0] <= "9")) { isLeagal = false; } else { foreach (char c in chars) { if (!((c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z")||c=="_")) { isLeagal=false; break; } } } if (isLeagal) { Console.WriteLine("字符串合法"); } else { Console.WriteLine("字符串不合法"); } Console.ReadKey(); }
回文串"是一个正读和反读都一样的字符串,比如level或者noon等等就是回文串。请写一个程序判断读入的字符串是否是“回文串”。
static void Main(string[] args) { char[] chars = Console.ReadLine().ToCharArray(); bool isHui = true; for (int i = 0; i < chars.Length / 2; i++) { if (chars[i] != chars[chars.Length - 1 - i]) { isHui = false; break; } } if (isHui) { Console.WriteLine("是回文串"); } else { Console.WriteLine("不是回文串"); } Console.ReadKey(); }
输入是个不相等的正整数,输出这10个正整数中的第二大的数。样例输入3729531038样例输出9
static void Main(string[] args) { string[] strArray = Console.ReadLine().Split(" "); int[] intArray = new int[strArray.Length]; for (int i = 0; i < intArray.Length; i++) { intArray[i] = int.Parse(strArray[i]); } int max1 = 0, max2 = 0; for (int i = 0; i < intArray.Length; i++) { if (intArray[i]>max1) { max2 = max1; max1 = intArray[i]; } else { if (intArray[i]>max2) { max2 = intArray[i]; } } } Console.WriteLine($"第二大值 {max2}"); Console.ReadKey(); }
区间内的真素数找出正整数M和N之间(N不小于M)的所有真素数。
真素数的定义:如果一个正整数P为素数,且其反序也为素数,那么P就为真素数。
例如,11,13均为真素数,因为11的反序还是为14,13的反序为31也为素数。
输入格式:输入两个数M和N,空格间隔,1<=M<=N<=100000。
输出格式:按从小到大输出M和N之间(包括M和N)的真素数,逗号间隔。如果之间没有真素数,则输出N0。
输入样例:1035
输出样例:11.13,17,31
static void Main(string[] args) { string[] strArray = Console.ReadLine().Split(" "); int[] intArray = new int[strArray.Length]; for (int i = 0; i < intArray.Length; i++) // m n { intArray[i] = int.Parse(strArray[i]); } int m = intArray[0]; int n = intArray[1]; for (int i = m; i < n + 1; i++) { bool isSu = true; for (int j = 2; j < i; j++) { if (i % j == 0) { isSu = false; } } if (isSu) { // 取反 int temp = i; int number = 0; while (temp % 10 != 0) { number = number * 10 + temp % 10; temp = temp / 10; } bool isSu2 = true; for (int j = 2; j < number; j++) { if (number % j == 0) { isSu2 = false; break; } } if (isSu2) { Console.Write(i + " "); } } } Console.ReadKey(); }
f( n )=f(n-1)+ f(n-2) ,f(0)=2 ,f(1) = 3 , 用程序求得 f(40)
static void Main(string[] args) { // fn = fn1 + fn2 f0=2 f1=3 int n1 = 2; // f0 int n2 = 3; // f1 int n40 = 0; for (int i = 2; i < 41; i++) { n40 = n1 + n2; n1 = n2; n2 = n40; } Console.WriteLine(n40); Console.ReadKey(); }
static void Main(string[] args) { // fn = fn1 + fn2 f0=2 f1=3 int n40 = F(40); Console.WriteLine(n40); Console.ReadKey(); } static int F(int n) { if (n == 0) { return 2; } if (n == 1) { return 3; } int res = F(n - 1) + F(n - 2); return res; }
利用递归函数取得10!
static void Main(string[] args) { // n! = n*(n-1)*(n-2)*...*(n-(n-1)) // 5! = 5*4*3*2*1 int result = 10; for (int i = 9; i > 0; i--) { result = result * i; } Console.WriteLine(result); Console.ReadKey(); }
static void Main(string[] args) { // n! = n*(n-1)*(n-2)*...*(n-(n-1)) = n*(n-1)! // 5! = 5*4*3*2*1 Console.WriteLine(F(10)); Console.ReadKey(); } static int F(int n) { if (n == 1) { return 1; } int res = n * F(n - 1); return res; }
找规律!!!
1+2!+3!+4!+..+10!
利用多个方法计算结果
static void Main(string[] args) { // n! = n*(n-1)*(n-2)*...*(n-(n-1)) = n*(n-1)! // 5! = 5*4*3*2*1 Console.WriteLine(S(10)); Console.ReadKey(); } static int F(int n) { if (n == 1) { return 1; } int res = n * F(n - 1); return res; } static int S(int n) { if(n==1) { return 1; } int res=F(n) + S(n - 1); return res; }
有关系式1 x 1+2 x 2+3 x 3+..+ k x k<2000,编一个程序,求出满足此关系式的k的最大值
利用递归和循环解决这个问题
static void Main(string[] args) { // 不清楚循环何时结束 - while int k = 1; while (true) { int res = F(k); if (res >= 2000) { break; } k++; } Console.WriteLine(k - 1); Console.ReadKey(); } static int F(int n) { if (n == 1) { return 1; } int res = n * n + F(n - 1); return res; }
标签: