什么是阶乘?
阶乘(factorial)是基斯顿·卡曼(Christian Kramp, 1760 – 1826)于1808年发明的运算符号。
阶乘,也是数学里的一种术语。
阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。
例如所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘。 例如所要求的数是6,则阶乘式是1×2×3×……×6,得到的积是720,720就是6的阶乘。例如所要求的数是n,则阶乘式是1×2×3×……×n,设得到的积是x,x就是n的阶乘。
在表达阶乘时,就使用“!”来表示。如h阶乘,就表示为h!
阶乘一般很难计算,因为积都很大。
以下列出1至10的阶乘。
1!=1,
2!=2,
3!=6,
4!=24,
5!=120,
6!=720,
7!=5040,
8!=40320
9!=362880
10!=3628800
另外,数学家定义,0!=1,所以0!=1!
阶乘
using System;
class MainClass
{
static int Main(string[] args)
{
if (args.Length == 0)
{
System.Console.WriteLine("请输入正确的数字:");
System.Console.WriteLine("用法: Factorial <num>");
return 1;
}
try
{
int num = this.ToInt(args[0]);
System.Console.WriteLine("The Factorial of {0} is {1}.", num,Factorial(num));
return 0;
}
catch (System.FormatException)
{
System.Console.WriteLine("请输入正确的数字:");
System.Console.WriteLine("用法: Factorial <num>");
return 1;
}
}
ToInt 转换成整型 不抛例外#region ToInt 转换成整型 不抛例外
/**//// <summary>
/// 转换成整型 不抛例外
/// </summary>
/// <param name="objInt"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public int ToInt(object objInt, int defaultValue)
{
try
{
if (objInt == null || objInt is System.DBNull)
{
return defaultValue;
}
else
{
try
{
return Convert.ToInt32(objInt);
}
catch
{
return defaultValue;
}
}
}
catch
{
return defaultValue;
}
}
/**//// <summary>
/// 转换成整型 不抛例外
/// </summary>
/// <param name="objInt"></param>
/// <returns></returns>
public int ToInt(object objInt)
{
return ToInt(objInt, 0);
}
#endregion
Factorial 阶乘#region Factorial 阶乘
/**//// <summary>
/// 阶乘
/// </summary>
/// <param name="n">要求的阶乘数</param>
/// <returns></returns>
public long Factorial(int n)
{
if (n < 0) { return -1; } //返回错误
if (n > 256) { return -2; } //错误返回,数值过大
if (n == 0) { return 1; }
long tempResult = 1;
for (int i = 1; i <= n; i++)
{
tempResult *= i;
}
return tempResult;
}
#endregion
}
using System;
class MainClass
{
static int Main(string[] args)
{
if (args.Length == 0)
{
System.Console.WriteLine("请输入正确的数字:");
System.Console.WriteLine("用法: Factorial <num>");
return 1;
}
try
{
int num = this.ToInt(args[0]);
System.Console.WriteLine("The Factorial of {0} is {1}.", num,Factorial(num));
return 0;
}
catch (System.FormatException)
{
System.Console.WriteLine("请输入正确的数字:");
System.Console.WriteLine("用法: Factorial <num>");
return 1;
}
}
ToInt 转换成整型 不抛例外#region ToInt 转换成整型 不抛例外
/**//// <summary>
/// 转换成整型 不抛例外
/// </summary>
/// <param name="objInt"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public int ToInt(object objInt, int defaultValue)
{
try
{
if (objInt == null || objInt is System.DBNull)
{
return defaultValue;
}
else
{
try
{
return Convert.ToInt32(objInt);
}
catch
{
return defaultValue;
}
}
}
catch
{
return defaultValue;
}
}
/**//// <summary>
/// 转换成整型 不抛例外
/// </summary>
/// <param name="objInt"></param>
/// <returns></returns>
public int ToInt(object objInt)
{
return ToInt(objInt, 0);
}
#endregion
Factorial 阶乘#region Factorial 阶乘
/**//// <summary>
/// 阶乘
/// </summary>
/// <param name="n">要求的阶乘数</param>
/// <returns></returns>
public long Factorial(int n)
{
if (n < 0) { return -1; } //返回错误
if (n > 256) { return -2; } //错误返回,数值过大
if (n == 0) { return 1; }
long tempResult = 1;
for (int i = 1; i <= n; i++)
{
tempResult *= i;
}
return tempResult;
}
#endregion
}
1. public int ToInt(object objInt, int defaultValue),
public int ToInt(object objInt)
这就是函数,而且是函数中的重载,
函数重载是用来描述同名函数具有相同或者相似功能,但数据类型或者是参数不同的函数
都是执行转换为Int 只是参数不一样,返回的数据类型相同,所以用了重载.
public long Factorial(int n)
这个也是函数
public 函数的访问类型,
long 函数返回的数据类型
Factorial 函数的名称
int n 参数
里面的内容就所谓的函数体了.