題意:
求p(n,m)的最後一位非零數。
思路:討論1-----n中2,5,3,7,9因子的個數,具體移步
按照我的理解,求n!最後非零為,先把1----n中『2』和『5』的因子的數量求出來,因為只有2和5可以構成0,接下來就要分別求出1---n中最後一位為3,7,9的數字的數量,然後相乘就可以得到n!的最後一位的數
#include#include#includeusing namespace std;
typedef long long ll;
ll n, m;
ll get25(ll n ,ll x)
return res;
}ll getodd(int n ,int x)
ll gao(int n ,int x)
int table[4][4] =;
int main()
ll res = 1;
if(two != five)res *= table[0][(two - five)%4];
res *= table[1][(three)%4];
res *= table[2][(seven)%4];
res *= table[3][(nig)%4];
res %= 10;
printf("%i64d\n",res);
}return 0;
}
計算n!的最後一位非0的數
includeint main if sum 100 這裡若設定太小,當階乘很大時,會出現錯誤 printf d d n i,sum 該處為測試所用 printf d sum 10 return 0 這裡需要說明的是,當if sum 100 判斷條件不夠大時,比如只有sum 10,那麼每次只保留階乘...
N!的最末位非零數
n!的最末位非零數 原帖 給定乙個數n n 10 1000 如何快速求得n!的最末位非零數是乙個經典的問題。一直以來都被這個問題困擾,今天仔細想了下,終於給想通了,儘管可能有些笨拙,現把想法記錄於此。在n很小的情況下,有乙個簡便的方法 求出1到n之間每個數的2的因子數和5的因子數,記為f 2 和f ...
結尾非零數的奇偶性
描述 給你乙個正整數列表 l,如 l 2,8,3,50 判斷列表內所有數字乘積的最後乙個非零數字的奇偶性,奇數輸出1,偶數輸出0.如樣例輸出應為0 coding utf 8 l 2,8,3,50 product 1 for i in l product i def main global produ...