首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#怎么判断一个数的阶乘溢出

2012-10-16 
C#如何判断一个数的阶乘溢出需要写一个C#数阶乘的函数,函数已经写好,但老师要求用抛出异常的方式来判断这

C#如何判断一个数的阶乘溢出
需要写一个C#数阶乘的函数,函数已经写好,但老师要求用抛出异常的方式来判断这个数的阶乘结果是否溢出,如果溢出就抛出异常。
阶乘函数如下:
/*
 * 采用递归方法求一个数的阶乘
 * 2012.10.06---wenyan
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace jiecheng1
{
  class Program
  {
  static void Main(string[] args)
  {
  Console.WriteLine("Please input num N:");//提示输入一个整数
  int n=0;
  n= int.Parse(Console.ReadLine());//读取这个整数并强制转换
  Console.WriteLine(fun(n).ToString());//调用阶乘函数
  Console.ReadKey();
  }
  public static double fun(int n)
  {
  if (n == 1)
  return 1;
  else
  return fun(n-1)*n;//递归
  }
  }
}

怎么判断溢出并抛出异常呢?望大神们指教!

[解决办法]
看下面3段代码:

C# code
int x = 2000000000; //20亿,一个略小于2^31的数字。x += x; // 不会丢出异常 

热点排行