C# 常见算法题

1.

//冒泡排序

//选择排序

//插入排序

2.有一列数1,1,2,3,5,........求第30个数.

 

public class MainClass
{
    public static void Main()
    {
        Console.WriteLine(Foo(30));
    }
    public static int Foo(int i)
    {
        if (i <= 0)
            return 0;
        else if (i > 0 && i <= 2)
            return 1;
        else return Foo(i - 1) + Foo(i - 2);
    }
}

3. 程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。

 

    public delegate void SubEventHandler(); 
    public abstract class Subject 
    
        public event SubEventHandler SubEvent; 
        protected void FireAway() 
        
            if (this.SubEvent != null) 
                this.SubEvent(); 
        }   
    } 
    public class Cat : Subject 
    {  
        public void Cry() 
        
            Console.WriteLine(cat cryed.); 
            this.FireAway(); 
        } 
    } 
    public abstract class Observer 
    
        public Observer(Subject sub) 
        
            sub.SubEvent += new SubEventHandler(Response); 
        } 
        public abstract void Response();    
    } 
    public class Mouse : Observer 
    
        private string name; 
        public Mouse(string name, Subject sub) : base(sub) 
        {   
            this.name = name; 
        } 
        public override void Response() 
        
            Console.WriteLine(name +  attempt to escape!); 
        } 
    } 
    public class Master : Observer 
    
        public Master(Subject sub) : base(sub){} 
        public override void Response() 
        
            Console.WriteLine(host waken); 
        } 
    } 
    class Class1 
    
        static void Main(string[] args) 
        
            Cat cat = new Cat(); 
            Mouse mouse1 = new Mouse(mouse1, cat); 
            Mouse mouse2 = new Mouse(mouse2, cat); 
            Master master = new Master(cat); 
            cat.Cry(); 
        } 

    } 

posted on 2020-01-07 16:36  君凌  阅读(569)  评论(0编辑  收藏  举报

导航