求第一个阶乘位数大于100的数
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<cmath>
using namespace std;
int main()
{
double n = 1;
int i;//阶乘得数
for ( i = 1;; i++)
{
if (n > 100) break;//位数
n += log10(i);
}
printf("%d", i);
return 0;
}
9的阶乘等于:362880
它的二进制表示为:1011000100110000000
这个数字共有19位。
请你计算,9999 的阶乘的二进制表示一共有多少位?
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<cmath>
using namespace std;
int main()
{
double n = 1;
for (int i = 1; i <= 9999; i++)
{
n += log10(i) / log10(2);
}
cout << int(n) << endl;
return 0;
}