using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace AppDemo { class Program { static void Main(string[] args) { //Test1(); //Test2(); Test3(); } //(1)产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。 private static void Test1() { int[] a = new int[100]; List list = new List (); Random rand = new Random(); while (list.Count < 100) { int randnum = rand.Next(1, 101); if (!list.Contains(randnum)) { list.Add(randnum); } } for (int i = 0; i < 100; i++) { a[i] = list[i]; Console.WriteLine(a[i]); } Console.ReadKey(); } //(2)求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m public static void Test2() { Console.WriteLine(" 请输入一共有多少个数"); int m = Convert.ToInt32(Console.ReadLine()); int sum = 0; for (int i = 0; i < m + 1; i++) { //偶数 if ((i % 2) == 0) { sum = sum - i; } //奇数 else { sum = sum + i; } } Console.WriteLine("{0}个数,表达式1-2+3-4+……+m的和为{1}",m,sum); Console.ReadKey(); } //(3)一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。 //求解:观察数据规律,从第三个数开始,前2个数之和是紧挨着这两个数的值 //例如:2=1+1; // 3=1+2; // 5=2+3; // 8=3+5; // ...... //由此,我们可以写出成如下的伪代码: // if(i<=0)return 0; // else if(i>0 && i<=2)return 1 // if(i>2) // Foo(i)=Foo(i-1)+Foo(i-2) private static void Test3() { Console.WriteLine(Foo(13)); Console.ReadKey(); } private 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); } } }