[蓝桥杯2016决赛]阶乘位数-数论
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯2016决赛]阶乘位数-数论
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
9的階乘等于:362880
它的二進制表示為:1011000100110000000
這個數字共有19位。
請你計算,9999 的階乘的二進制表示一共有多少位?
輸出
輸出一個整數表示答案
知識點:
整數m在k進制下,有多少位?
公式:[log?km]+1[\log_{k}{m}]+1[logk?m]+1
再根據公式:
log?ca?b=log?ca+log?cb\log_{c}{a*b} = \log_{c}{a}+\log_{c}{b}logc?a?b=logc?a+logc?b
代碼如下:
#include <iostream> #include <cmath> using namespace std;int main() {double ans = 0;//注意要用doublefor (int i = 1; i <= 9999; i++) {ans += log2(i);}cout << (int)(floor(ans)) + 1 << endl;return 0; }總結
以上是生活随笔為你收集整理的[蓝桥杯2016决赛]阶乘位数-数论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分享网页游戏后台开发技术经验
- 下一篇: cpu散热怎么选cpu散热器如何选择