文章图片
思维||数学
#include
using namespace std;
typedef long long ll;
const int N=5e5+5,tt=1000000;
int a[N],b[N];
int dd(ll x)
{
int s=0;
while(x)
{
s++;
x/=10;
}
return s;
}
int main()
{
ios::sync_with_stdio(false);
ll n;
n=1;
int s=1;
//记录阶乘的位数
for(int i=1;
;
i++)
{
while(n>tt) n/=10;
//一个数乘以另一个数,如果判断结果增加的位数,只乘以前几位(大于要乘以的数)就行,
int x=dd(n);
//计算(i-1)!的位数
n=n*i;
int y=dd(n);
//计算 i! 的位数
s=s+y-x;
//加上增加的位数
if(s>=10000)
{
cout<
【思维|结果填空(阶乘位数)】
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 思维|天气预报(牛客)
- codeforce|Codeforces Round #774 (Div. 2) D. Weight the Tree
- 暴力枚举|蓝桥杯--关于暴力枚举
- 每日一题|每日一题-解码(第十一届蓝桥杯)(简单思维)
- codeforces|Codeforces Round #665 (Div. 2) A. Distance and Axis(思维,数学)
- codeforces|Codeforces Global Round 10 C. Omkar and Waterslide(思维)
- codeforces|Codeforces Global Round 10 D. Omkar and Bed Wars(思维,分块)
- codeforces|Codeforces Round #643 (Div. 2) D. Game With Array (思维,贪心)
- codeforces|Codeforces Round #648 (Div. 2) C. Rotation Matching(思维)