C++アルゴリズムトレーニングP 0505


アルゴリズムトレーニングP 0505
1つの整数nの階乗はnと書くことができます!,1からnまでのn個の整数の積を表す.階乗の成長速度は非常に速く、例えば、13!すでに大きくなって、もう1つの整数変数に保存できません.そして35!さらに大きくなり、浮動小数点型変数に格納できません.したがって,nが比較的大きい場合,nを計算する!とても難しいです.幸いなことに、本題では、私たちの任務はnを計算することではありません!、nを計算するのです!一番右の0以外の数字はいくらですか.たとえば、5!=12345=120なので、5!一番右の0以外の数字は2です.さらに、7!=5040、だから7!一番右の0以外の数字は4です.さらに、15!=1307674368000なので、15!一番右の0以外の数字は8です.プログラムを作成し、整数n(0)を入力してください.
入力:7出力:4
コード#コード#
#include<iostream>

using namespace std;

int main()
{
     
    int n;
    cin>>n;
    int s=1;
    for(int i=1;i<=n;i++)
    {
     
        s=s*i;
        while(s%10==0)
            s=s/10;
        //         
        if((s*(i+1))%10==0)
            continue;
        s=s%10;
    }
    cout<<s;
}