1 斐波那契数列
1.1 题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
//斐波那契数列 static void Main(string[] args) { for (int i = 1; i <= 12; i++) { Console.WriteLine(Foo(i)); } Console.Read(); } public static int Foo(int i) { if (i < 0) return 0; else if (i>0 &&i <= 2)//第一个月,第二个月兔子的总对数是1对 return 1; else return Foo(i - 1) + Foo(i - 2);//第三月开始生1对新兔子(总数:2对),第四月时新生1对兔子(2+1=3对),第五月时新生两对兔子(3+2=5),第六月时新生3对兔子(5+3=8) }
2 判断素数
2.1 题目:判断101-200之间有多少个素数,并输出所有素数。
//101-200之间的素数 static void Main(string[] args) { int count = 0; for (int i = 101; i < 200; i++) { bool b = true;//默认此数为素数 for (int j = 2; j <= Math.Sqrt(i); j++) { if (i % j == 0)//能被2到该数开方直接的数整除 则不是素数 { b = false; break; } } if (b) { count++; Console.WriteLine(i); } } Console.WriteLine("101-200之间的素数个数:" + count); Console.Read(); }
3 水仙花数
3.1题目:打印出所有的"水仙花数(narcissus number)",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
//所有的"水仙花数(narcissus number)" static void Main(string[] args) { int count = 0; for (int i = 100; i < 1000; i++) { var num = NarcissusNum(i); if (num != 0) { count++; Console.WriteLine(num); } } Console.WriteLine("100-1000之间的水仙花个数:" + count); Console.Read(); } public static int NarcissusNum(int num) { int b = num / 100;//百位数 int s = (num % 100) / 10;//十位数 int g = (num % 100) % 10;//各位数 if (b * b * b + s * s * s + g * g * g == num)//百位数+十位数+个位数之和等于该数即为水仙花数 return num; else return 0; }
时间: 2024-11-05 17:33:45