输入正整数 n(int 类型),输出 1! + 2! + … + n! 的值。用 try {} catch {} 语句捕获整型溢出。
运行示例:
程序源码:
using System;
namespace FactorialSum
{
class FactorialSum
{
static void Main(string[] args)
{
Console.Write("Please input a number:");
int number = Int32.Parse(Console.ReadLine());
// 输入的数为 0,则 0!=1
if (number == 0)
{
Console.WriteLine("\n0!=1");
return;
}
// 当输入的数为负值时,循环输入,直至输入正整数或 0
while (number < 0)
{
Console.Write("您输入的数是负数!!!\n请重新输入:");
number = Int32.Parse(Console.ReadLine());
if (number == 0)
{
Console.WriteLine("\n0!=1");
return;
}
}
int result = 0;
try
{
for (int i = 1, item = 1; i <= number; i++)
{
item *= i;
// 累加 item,得 1~number 的阶乘和
result = checked(result + item);
}
Console.WriteLine("\nThe sum from 1! to " + number + "! = " + result);
}
catch (OverflowException e)
{
Console.WriteLine("\nArithmetic operation resulted in an overflow!\n");
}
}
}
}