Csharp递归函数练习
1+2!+3!+···+10!
利用多少个方法计算结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| { static int F1(int n) { if (n == 1) { return 1; } int result = n * F1(n - 1); return result; } static int F2(int n) { if(n == 1){ return 1; } int result = F2(n - 1) + F1(n); return result; } static void Main(string[] args) { Console.WriteLine(F2(10)); }
|
输出结果:
有关系式1^1+2^2+3^3+···+K^K<2000,编一个程序,求出满足此关系式的最大值
利用递归和循环解决这个问题
1.循环:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| { int k = 1; int result = 0; while (true) { result += k * k; if (result >= 2000) { break; } k++; } Console.WriteLine(k - 1); }
|
输出结果:
2.递归:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| { static int F(int n) { if (n == 0) { return 0; } int result = F(n - 1) + n * n; return result; } static void Main(string[] args) { int i = 1; while (true) { if(F(i) >= 2000) { break; } i++; } Console.WriteLine(i - 1); }
|
输出结果:
什么是常量
- 在C#中,常量是一种特殊的变量,其值在初始化后不能被改变。常量用于存储那些在程序运行期间不应该改变的数据。
- 以下是C#中常量的几个关键点:
声明:使用const关键字来声明常量。
类型:常量必须有明确的类型,通常是基本数据类型,如int、double、string等。
初始化:常量在声明时必须被初始化,且之后不能被重新赋值。
作用域:常量的作用域取决于其声明的位置,可以是局部的(在方法或代码块中)或全局的(在类或命名空间中)。
编译时常数:编译器在编译时会将常量的值内嵌到代码中,这意味着它们在运行时是不可变的。
下面是一个C#中声明和使用常量的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public class ConstantsExample { public const int MaxValue = 100;
public void Display() { Console.WriteLine("The maximum value is: " + MaxValue); } }
class Program { static void Main() { ConstantsExample example = new ConstantsExample(); example.Display();
} }
|
在这个例子中,MaxValue是一个常量,它被声明为const,并且初始化为100。在Display方法中,我们使用这个常量来打印信息。尝试修改MaxValue的值将导致编译错误,因为常量在初始化后不能被改变。