1. Utilice un algoritmo recursivo para calcular el resultado de 1 + 2 + 3 + 4 +… + 100
staticintSUM(int x){
if(x <=1)return x;elsereturn x +SUM(x -1);}
2. Implementar un algoritmo de clasificación de burbujas (orden ascendente)
staticvoidSort(int[] nums){
int temp;for(int i =0; i < nums.Length; i++){
for(int j = i +1; j < nums.Length; j++){
if(nums[i]> nums[j]){
temp = nums[i];
nums[i]= nums[j];
nums[j]= temp;}}
Console.WriteLine(nums[i]);}}
3. Implementar un método para contar el número de ocurrencias de cada carácter en cualquier cadena de entrada.
/** 字典的定义
必须包含名空间System.Collection.Generic
Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)
键必须是唯一的,而值不需要唯一的
键和值都可以是任何类型(比如:string, int, 自定义类型,等等)
通过一个键读取一个值的时间是接近O(1)
键值对之间的偏序可以不定义
*/staticvoidCountChar(string str){
Dictionary<char,int> dic =newDictionary<char,int>();foreach(char c in str){
if(dic.ContainsKey(c))
dic[c]++;else
dic.Add(c,1);}foreach(KeyValuePair<char,int> p in dic){
Console.WriteLine("字符{0},出现的次数{1}", p.Key.ToString(), p.Value.ToString());}}
4. Implemente un método para convertir una cadena en un entero, no use ningún método de biblioteca como int.Parse, int.TryParse, Convert.ToInt32, etc.
staticboolTryParse(string s,outint num){
if(!string.IsNullOrWhiteSpace(s)){
num =0;returnfalse;}int result =0;bool minus = s[0]=='-'?true:false;if(minus && s.Length ==1){
num =0;returnfalse;}for(int i = minus ?1:0; i < s.Length; i++){
if(s[i]>='0'&& s[i]<='9'){
result = s[i]-48+ result *10;}else{
num =0;returnfalse;}}
num = minus ?-result : result;returntrue;}
5. Las reglas para una columna de números son las siguientes: 1, 1, 2, 3, 5, 8, 13, 21, 34 ... ¿Cuál es el trigésimo dígito y usa un algoritmo recursivo para lograr
staticintFoo(int i){
if(i <=0)return0;elseif(i >0&& i <=2)return1;elsereturnFoo(i -1)+Foo(i -2);}