2 条题解
-
-1武子涵@石湖中学 (武子涵) LV 10 @ 2021-03-13 13:51:45
/*
/
#define method_1
#ifdef method_1
/
50分算法
直接计算
/
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<vector>
#include<cstring>
#include<cstdlib>
using namespace std;
typedef long long ll;
const int maxn=+5;
const ll INF=0x3f3f3f3f3f3f3f3fll;
int n,ans;
int main() {
ios::sync_with_stdio(false);
// freopen("偷拍硕哥6.in","r",stdin);
cin>>n;
ans=n;
for(int i=1;i<=n-1;i++){
ans=n;
}
// cout<<ans<<endl;
int len=0;
while(ans){
len++;
ans/=10;
}
cout<<len;
return 0;
}
#endif
#ifdef method_2
/*
80分算法
高精度
*/
#include<stdio.h>const int maxn=+5;
int b[10000];
int i,j,n;
int fac_bit_count(){
b[0]=1;
for(i=1;i<=n;i++){
int sum=0;
for(j=0;j<9995;j++){
int c=b[j]*n+sum;
b[j]=c%10;
sum=c/10;
}
}
for(i=9995;i>=0;i--){
if(b[i]) break;
}
return i+1;
}
int main() {
// freopen("偷拍硕哥6.in","r",stdin);
scanf("%d",&n);// printf("%d\n",n);
printf("%d",fac_bit_count());
return 0;
}
#endif
#ifdef method_3
/*
对某个数取以10为底的对数 将得到其位数
log10(n!)=log10(n)+...+log10(1);
*/
#include<stdio.h>
#include<math.h>
const int maxn=+5;
int n;
int main() {
// freopen("偷拍硕哥6.in","r",stdin);
scanf("%d",&n);
int ans=n*log10(n);
printf("%d",ans+1);
return 0;
}
#endif -
-32018-12-11 12:01:35@
/* */ #define method_1 #ifdef method_1 /* 50分算法 直接计算 */ #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<set> #include<map> #include<queue> #include<stack> #include<vector> #include<cstring> #include<cstdlib> using namespace std; typedef long long ll; const int maxn=+5; const ll INF=0x3f3f3f3f3f3f3f3fll; int n,ans; int main() { ios::sync_with_stdio(false); // freopen("偷拍硕哥6.in","r",stdin); cin>>n; ans=n; for(int i=1;i<=n-1;i++){ ans*=n; } // cout<<ans<<endl; int len=0; while(ans){ len++; ans/=10; } cout<<len; return 0; } #endif #ifdef method_2 /* 80分算法 高精度 */ #include<stdio.h> const int maxn=+5; int b[10000]; int i,j,n; int fac_bit_count(){ b[0]=1; for(i=1;i<=n;i++){ int sum=0; for(j=0;j<9995;j++){ int c=b[j]*n+sum; b[j]=c%10; sum=c/10; } } for(i=9995;i>=0;i--){ if(b[i]) break; } return i+1; } int main() { // freopen("偷拍硕哥6.in","r",stdin); scanf("%d",&n); // printf("%d\n",n); printf("%d",fac_bit_count()); return 0; } #endif #ifdef method_3 /* 对某个数取以10为底的对数 将得到其位数 log10(n!)=log10(n)+...+log10(1); */ #include<stdio.h> #include<math.h> const int maxn=+5; int n; int main() { // freopen("偷拍硕哥6.in","r",stdin); scanf("%d",&n); int ans=n*log10(n); printf("%d",ans+1); return 0; } #endif
- 1
信息
- 难度
- 8
- 分类
- (无)
- 标签
- (无)
- 递交数
- 244
- 已通过
- 30
- 通过率
- 12%
- 被复制
- 5
- 上传者