二叉樹的層序遍歷 N 結尾0的個數

2021-08-04 05:23:30 字數 572 閱讀 3573

void _levelorder(node *proot)

}

首先考慮,如果n的階乘為k和10的m次方的乘積,那麼n!末尾就有m的0。如果將n的階乘分解後,那麼

n的階乘可以分解為: 2的x次方,3的y次方,5的z次方,.....的成績。由於10 = 2 * 5,所以m只能和x和z有關,每一對2和5相乘就可以得到乙個10,於是m = min(x,z),不難看出x大於z,因為被2整除的頻率比被5整除的頻率高的多。所以可以把公式簡化為m=z.

由上面的分析可以看出,只要計算出z的值,就可以得到n!末尾0的個數

就是要計算1-n的因式分解中5的指數。然後求和。

如25的階乘有6個0,25*24==600,有兩個0,

#include

using

namespace

std;

int getnum(int n)

}return num;

}int getnum2(int n)

}int main()

return

0;}

二叉樹層序遍歷 求二叉樹的層序遍歷

給定乙個二叉樹,返回該二叉樹層序遍歷的結果,從左到右,一層一層地遍歷 例如 給定的二叉樹是,該二叉樹層序遍歷的結果是 3 9,20 15,7 示例1 輸入 返回值 1 2 示例2輸入 返回值 1 2,3 4,5 解題思路 重點是如何把在一層的節點放到一起,設定乙個引數專門放一層的節點 class t...

二叉樹的層序遍歷

1.問題描述 給出一棵二叉樹,返回其節點值的層次遍歷 逐層從左往右訪問 樣例 給一棵二叉樹 3 9 20 15 7返回他的分層遍歷結果 3 9,20 15,7 2.解題思路 將每一層的節點按從左往右儲存在佇列裡,然後以此訪問該佇列每乙個節點的左右子樹,節點出隊,以此儲存,該層節點出隊後,以向量方式儲...

二叉樹的層序遍歷

所謂的層序遍歷,就是按照從上到下,從左到右的順序遍歷該二叉樹。所以按層列印的順序就應該先列印根節點,然後依次為根節點的左孩子,右孩子。根節點的左孩子的左孩子,根節點的左孩子的右孩子 假設有如圖所示的二叉樹。由圖可知,先列印根節點8,在列印節點8的時候,有必要先把節點6和10兩個節點儲存在乙個容器中。...