最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 4.0 大數(shù)的運(yùn)算--BigInteger的應(yīng)用詳解

 更新時(shí)間:2013年05月13日 16:52:21   作者:  
本篇文章是對(duì)C# 4.0 大數(shù)的運(yùn)算 BigInteger的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
前段時(shí)間,有個(gè)同事說

“30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000001”
是個(gè)質(zhì)數(shù)。
直覺告訴我,光是在中間加幾個(gè)0,在后面加個(gè)1,估計(jì)不是質(zhì)數(shù)。
有很多面試題,都會(huì)要面試者去做一些關(guān)于大數(shù)的運(yùn)算,例如在這里就有判斷上面這個(gè)數(shù)是不是質(zhì)數(shù)的情況。

很明顯,Integer ,Long都是不能來處理如此巨大的數(shù)的。
在.net framework 4.0中,System.Numerics.dll 中提供了BigInteger 類。使用這個(gè)類可以很方便的解決這個(gè)問題。
判斷n是質(zhì)數(shù)的方法:
1:如果是偶數(shù),肯定不是質(zhì)數(shù)
2:如果能夠被小于或等于Sqrt(n) 的數(shù)除盡,則不是質(zhì)數(shù)。
代碼如下:
復(fù)制代碼 代碼如下:

private static bool IsPrime()
{
    string largeNumber = @"30000000000000000000000...000000001”;
    BigInteger bigInteger = BigInteger.Parse(largeNumber);
    if (bigInteger.IsEven)
    {
        return false;
    }
    for (BigInteger bi = 3; BigInteger.Pow(bi, 2) <= bigInteger; bi += 2)
    {
        if (bigInteger % bi == 0)
        {
            return false;
        }
    }
    return true;
}

本來for 循環(huán)中的代碼應(yīng)該是
復(fù)制代碼 代碼如下:

for (BigInteger bi = 3; bi <= BigInteger.Sqrt(bigInteger); bi += 2)
{
    if (bigInteger % bi == 0)
    {
        return false;
    }
}

可惜的是BigInteger 不支持Sqrt方法,所以換用

for (BigInteger bi = 3; BigInteger.Pow(bi, 2) <= bigInteger; bi += 2)

 結(jié)果如下圖:

image

可以知道”30000000000000000000000000…………………………..1”不是質(zhì)數(shù),可以被13除盡。

2:C語言中有道經(jīng)典的題目是求100!后面有幾個(gè)0.

如果你不知道BigInteger的話,應(yīng)該怎么做?

 100! 可以理解為image

 因?yàn)榕紨?shù)比5要多,所以i值比j值多很多,所以求100!有多少個(gè)0,可以認(rèn)為是求j的值

當(dāng)然也可以用公式

 Sum = [100/5]+[100/(5^2)]+[100/(5^3)]=20+4+0=24;

 如果你既沒有思路,也沒有公式,腦子里面只有一個(gè)念頭:1*2*3*4*5*..*100 for循環(huán),然后統(tǒng)計(jì)0的數(shù)量的話,在4.0 中也可以實(shí)現(xiàn),雖然好像速度慢了點(diǎn),不過也還是可以得到答案的:

 代碼如下:

image 

統(tǒng)計(jì)的代碼如下:

運(yùn)行結(jié)果如下:

復(fù)制代碼 代碼如下:

int count = 0;
for (int i = strSum.Length - 1; i >= 0; i--)
{
    if (strSum[i] == '0')
    {
        count++;
    }
    else
    {
        break;
    }
}


image 

還有很多使用大數(shù)的運(yùn)算的地方,都等待著你的發(fā)揮!

相關(guān)文章

  • C#基于百度AI實(shí)現(xiàn)機(jī)器翻譯功能

    C#基于百度AI實(shí)現(xiàn)機(jī)器翻譯功能

    眾所周知,基于百度ai開發(fā)平臺(tái)我們可以實(shí)現(xiàn)了人臉識(shí)別、文字識(shí)別 、語音識(shí)別等功能。本文將介紹它的另一個(gè)功能,即實(shí)現(xiàn)機(jī)器翻譯,感興趣的可以了解一下
    2022-01-01
  • 輕松學(xué)習(xí)C#的foreach迭代語句

    輕松學(xué)習(xí)C#的foreach迭代語句

    輕松學(xué)習(xí)C#的foreach迭代語句,  C#語言提供了一個(gè)for語句循環(huán)的捷徑,而且還促進(jìn)了集合類的更為一致,就是本文提到的foreach語句,感興趣的小伙伴們可以參考一下
    2015-11-11
  • C#獲取漢字字符串拼音首字母的方法

    C#獲取漢字字符串拼音首字母的方法

    這篇文章主要介紹了C#獲取漢字字符串拼音首字母的方法,實(shí)例分析了C#操作漢字及字符串的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 自定義WPF窗體形狀的實(shí)戰(zhàn)記錄

    自定義WPF窗體形狀的實(shí)戰(zhàn)記錄

    WPF是制作界面的一大利器,下面這篇文章主要給大家介紹了關(guān)于自定義WPF窗體形狀的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們一起來看看吧
    2018-09-09
  • C#動(dòng)態(tài)生成PictureBox并指定圖片的方法

    C#動(dòng)態(tài)生成PictureBox并指定圖片的方法

    這篇文章主要介紹了C#動(dòng)態(tài)生成PictureBox并指定圖片的方法,實(shí)例分析了C#圖形控件的動(dòng)態(tài)生成及使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • C#控制圖像旋轉(zhuǎn)和翻轉(zhuǎn)的方法

    C#控制圖像旋轉(zhuǎn)和翻轉(zhuǎn)的方法

    這篇文章主要介紹了C#控制圖像旋轉(zhuǎn)和翻轉(zhuǎn)的方法,涉及C#圖像操作中RotateFlip方法的相關(guān)使用技巧,需要的朋友可以參考下
    2015-06-06
  • C# TreeView控件使用代碼

    C# TreeView控件使用代碼

    TreeView控件的實(shí)例代碼,需要的朋友可以參考下。
    2009-09-09
  • C#查找列表中所有重復(fù)出現(xiàn)元素的方法

    C#查找列表中所有重復(fù)出現(xiàn)元素的方法

    這篇文章主要介紹了C#查找列表中所有重復(fù)出現(xiàn)元素的方法,涉及C#針對(duì)列表操作的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#使用DLLImport調(diào)用外部DLL的方法

    C#使用DLLImport調(diào)用外部DLL的方法

    這篇文章介紹了C#使用DLLImport調(diào)用外部DLL的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C# 大數(shù)據(jù)導(dǎo)出word的假死報(bào)錯(cuò)的處理方法

    C# 大數(shù)據(jù)導(dǎo)出word的假死報(bào)錯(cuò)的處理方法

    C# 大數(shù)據(jù)導(dǎo)出word的假死報(bào)錯(cuò)的處理方法,需要的朋友可以參考一下
    2013-03-03

最新評(píng)論

浑源县| 武鸣县| 枣庄市| 武川县| 集安市| 依安县| 东城区| 绥德县| 肥乡县| 青河县| 巧家县| 依安县| 都安| 随州市| 钟祥市| 凉山| 黔东| 西华县| 同德县| 光泽县| 墨竹工卡县| 乌拉特中旗| 姚安县| SHOW| 大化| 织金县| 蓝田县| 那坡县| 边坝县| 台南市| 固原市| 固镇县| 大邑县| 赣榆县| 咸宁市| 常州市| 泸西县| 曲松县| 阜阳市| 定西市| 福安市|