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

用C++實(shí)現(xiàn)求N!中末尾0的個(gè)數(shù)的方法詳解

 更新時(shí)間:2020年07月27日 16:31:17   作者:神楽桜  
這篇文章主要介紹了用C++實(shí)現(xiàn)求N!中末尾0的個(gè)數(shù)的方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

題目描述:

輸入一個(gè)正整數(shù)n,求n!(即階乘)末尾有多少個(gè)0? 比如: n = 10; n! = 3628800,所以答案為2

輸入描述:

輸入為1行,n(1≤n≤1000)

輸出描述:

輸出一個(gè)整數(shù)

樣例:

輸入:10

輸出:2

看到這個(gè)題,常規(guī)思路就是先把階乘算出來(lái),再用算出來(lái)的結(jié)果求余,余數(shù)為0則個(gè)數(shù)加1,代碼如下:

#include<iostream>
using namespace std;
int main(void)
{
 int n, m = 1;
 cin >> n;
 for (int i = n; i > 0; i--)
 {
  m = m * i;
 }
 int sum = 0;
 int t;
 for (int i = 0; m > 0; i++)
 {
  t = m % 10;
  m = m / 10;
  if (t != 0) //要是0前面的數(shù)字不是0,則直接結(jié)束
  {
   cout << sum;
   return 0;
  }
  else
  {
   sum++;
  }
 }
 return 0;
}

注意一點(diǎn),就是題目要求是算出末尾的0的個(gè)數(shù),而不是整個(gè)數(shù)字中有多少0,所以要注意當(dāng)余數(shù)不是0的時(shí)候就要結(jié)束代碼。

但是這樣做其實(shí)是不對(duì)的,因?yàn)槲覀冏⒁獾筋}目的輸入描述為n(1≤n≤1000),也就是說(shuō)當(dāng)n很大的時(shí)候,就會(huì)越界,超出int表示的范圍。所以也就不能用這種方法進(jìn)行求解。

正確思路:我們先看一下末尾的0是怎么來(lái)的:末尾有0,就說(shuō)明這個(gè)數(shù)可以被10整除,而再對(duì)10進(jìn)行因數(shù)分解,不難看出10=5*2,而5乘以任何一個(gè)偶數(shù),所得結(jié)果都會(huì)被10整除,所以問(wèn)題就轉(zhuǎn)化為這個(gè)階乘里面含有多少個(gè)能被5整除的數(shù)字。當(dāng)然還要注意一點(diǎn),那就是25,125,625這三個(gè)數(shù)字,25本質(zhì)上是2個(gè)5(平方),125本質(zhì)上是3個(gè)5(立方),625本質(zhì)上是4個(gè)5(4次方),所以在算到這些數(shù)字的時(shí)候要把他們本身含有的多的5算進(jìn)去。

代碼如下:

#include<iostream>
using namespace std;
int main(void)
{
 int n,sum=0;
 cin>>n;
 while(n)
 {
  sum=sum+n/5;
  n=n/5;
 }
 cout<<sum;
 return 0;
}

到此這篇關(guān)于用C++實(shí)現(xiàn)求N!中末尾0的個(gè)數(shù)的方法詳解的文章就介紹到這了,更多相關(guān)C++實(shí)現(xiàn)求N!中末尾0的個(gè)數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中FilterInputStream和FilterOutputStream的用法詳解

    Java中FilterInputStream和FilterOutputStream的用法詳解

    這篇文章主要介紹了Java中FilterInputStream和FilterOutputStream的用法詳解,這兩個(gè)類分別用于封裝輸入和輸出流,需要的朋友可以參考下
    2016-06-06
  • Java ConcurrentModificationException異常解決案例詳解

    Java ConcurrentModificationException異常解決案例詳解

    這篇文章主要介紹了Java ConcurrentModificationException異常解決案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 詳解Spring中Bean后置處理器(BeanPostProcessor)的使用

    詳解Spring中Bean后置處理器(BeanPostProcessor)的使用

    BeanPostProcessor 接口也被稱為Bean后置處理器,通過(guò)該接口可以自定義調(diào)用初始化前后執(zhí)行的操作方法。本文將詳細(xì)講講它的使用,需要的可以參考一下
    2022-06-06
  • 關(guān)于Springboot的日志配置

    關(guān)于Springboot的日志配置

    Spring Boot默認(rèn)使用LogBack日志系統(tǒng),如果不需要更改為其他日志系統(tǒng)如Log4j2等,則無(wú)需多余的配置,LogBack默認(rèn)將日志打印到控制臺(tái)上,需要的朋友可以參考下
    2023-05-05
  • java使用elasticsearch分組進(jìn)行聚合查詢過(guò)程解析

    java使用elasticsearch分組進(jìn)行聚合查詢過(guò)程解析

    這篇文章主要介紹了java使用elasticsearch分組進(jìn)行聚合查詢過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • java LocalDateTime加時(shí)間,計(jì)算兩個(gè)時(shí)間的差方式

    java LocalDateTime加時(shí)間,計(jì)算兩個(gè)時(shí)間的差方式

    文章介紹了如何在Java中使用LocalDateTime類添加時(shí)間并計(jì)算兩個(gè)時(shí)間的差值,通過(guò)比較來(lái)總結(jié)個(gè)人經(jīng)驗(yàn),并鼓勵(lì)讀者參考和支持腳本之家
    2025-03-03
  • SpringBoot中@MessageMapping注解的原理及使用詳解

    SpringBoot中@MessageMapping注解的原理及使用詳解

    這篇文章主要介紹了SpringBoot中@MessageMapping注解的原理及使用詳解,@MessageMapping注解是Spring Boot提供的一個(gè)重要的注解之一,它可以幫助我們處理WebSocket消息,需要的朋友可以參考下
    2023-07-07
  • Spring Boot應(yīng)用的極速部署腳本示例代碼

    Spring Boot應(yīng)用的極速部署腳本示例代碼

    最近在工作中遇到了一個(gè)問(wèn)題,需要極速的部署Spring Boot應(yīng)用,發(fā)現(xiàn)網(wǎng)上這方面的資料較少,所以自己來(lái)總結(jié)下,這篇文章主要給大家介紹了關(guān)于Spring Boot應(yīng)用的極速部署腳本的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-08-08
  • Java之Zookeeper注冊(cè)中心原理剖析

    Java之Zookeeper注冊(cè)中心原理剖析

    這篇文章主要介紹了Java之Zookeeper注冊(cè)中心原理剖析,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 深入淺析jni中的java接口使用

    深入淺析jni中的java接口使用

    這篇文章主要介紹了jni中的java接口使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

东至县| 图片| 虎林市| 张家界市| 牙克石市| 东乡族自治县| 海林市| 宁晋县| 云龙县| 米泉市| 靖安县| 中宁县| 曲周县| 南充市| 海盐县| 长阳| 宝坻区| 武功县| 腾冲县| 敦化市| 宜兰市| 哈巴河县| 瓦房店市| 聂拉木县| 松滋市| 岑巩县| 长岭县| 西充县| 托克逊县| 鹤峰县| 福海县| 江西省| 曲水县| 房山区| 宁安市| 浙江省| 玉龙| 大庆市| 包头市| 积石山| 金乡县|