C#简单的循环(迭代)与递归
1.简单的循环(迭代)
eg:打印从x到1的整数
namespace Example
{
class Program
{
static void Main(string[] args)
{
//调用PrintXTo1函数,打印从5到1的整数
Calculator c = new Calculator();
c.PrintXTo1(5);
}
}
/// <summary>
/// 自定义的Calculator类
/// </summary>
class Calculator
{
//打印从x到1的整数
public void PrintXTo1(int x)
{
for (int i = x; i > 0; i--) //从高到低循环
{
Console.WriteLine(i);
}
}
}
}
运行结果:
2.简单的递归
递归:一个函数(方法)可以调用自己
eg:打印从x到1的整数
namespace Example
{
class Program
{
static void Main(string[] args)
{
//调用PrintXTo1函数,打印从5到1的整数
Calculator c = new Calculator();
c.PrintXTo1(5);
}
}
/// <summary>
/// 自定义的Calculator类
/// </summary>
class Calculator
{
//打印从x到1的整数
public void PrintXTo1(int x)
{
if (x == 1)
{
Console.WriteLine(x);
}
else
{
Console.WriteLine(x);
PrintXTo1(x - 1); //调用函数本身
}
}
}
}
运行结果:
3.练习—计算从1到100的和
①循环:
namespace Example
{
class Program
{
static void Main(string[] args)
{
//调用SumFrom1ToX函数,计算从1到3的和
Calculator c = new Calculator();
int x = c.SumFrom1ToX(3);
Console.WriteLine(x);
}
}
/// <summary>
/// 自定义的Calculator类
/// </summary>
class Calculator
{
//计算从1到100的和
public int SumFrom1ToX(int x)
{
int result = 0;
for (int i = 0; i < x + 1; i++)
{
result += i;
}
return result;
}
}
}
运行结果:
②递归:
namespace Example
{
class Program
{
static void Main(string[] args)
{
//调用SumFrom1ToX函数,计算从1到3的和
Calculator c = new Calculator();
int x = c.SumFrom1ToX(3);
Console.WriteLine(x);
}
}
/// <summary>
/// 自定义的Calculator类
/// </summary>
class Calculator
{
//计算从1到100的和
public int SumFrom1ToX(int x)
{
if (x == 1)
{
return 1;
}
else
{
int result = x + SumFrom1ToX(x - 1); //递归
return result;
}
}
}
}
运行结果:
③使用公式计算
namespace Example
{
class Program
{
static void Main(string[] args)
{
//调用SumFrom1ToX函数,计算从1到3的和
Calculator c = new Calculator();
int x = c.SumFrom1ToX(3);
Console.WriteLine(x);
}
}
/// <summary>
/// 自定义的Calculator类
/// </summary>
class Calculator
{
//计算从1到100的和
public int SumFrom1ToX(int x)
{
return (1 + x) * x / 2; //公式
}
}
}
运行结果: