一些.net,sql的面试题2(附答案)
- N的阶乘,实现算法
Code public static int N(int n) { if (n == 1) { return 1; } else { return n * N(n - 1); } }
- 2个已经排好序的数组,现按大小顺序组合成一个新数组,实现算法
Code public static void Composite(int[] a, int[] b) { int[] newArray = new int[a.Length + b.Length]; int count = a.Length + b.Length; int aIndex = 0; int bIndex = 0; for (int i = 0; i < count; i++) { if (aIndex >= i) { newArray[i] = a[aIndex]; continue; } if (bIndex >= i) { newArray[i] = b[bIndex]; continue; } if (a[aIndex] <= b[bIndex]) { newArray[i] = a[aIndex]; aIndex++; } else { newArray[i] = b[bIndex]; bIndex++; } Console.WriteLine(newArray[i]); } }
- 写出1,2,2,3,4,5的所有组合,但是4不能在第3位,3和5不能相邻。
Code public static List<string> listStr = new List<string>(); public static void OutputConposition() { char[] arr = { '1', '2', '2', '3', '4', '5' }; string str = new string(arr); Function(arr, 0, 5); } public static void Function(char[] c, int begin, int end) { if (begin == end) { string str = new string(c); if (str[2] == '4') { return; } if (str.Contains("35") || str.Contains("53")) { return; } listStr.Add(str); return; } for (int i = begin; i <= end; i++) { Swap(c, begin, i); Function(c, i + 1, end); Swap(c, begin, i); } } public static void Swap(char[] arr, int a, int b) { char temp; temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; }