您的位置:首页 > 其它

高精度模板

2016-10-30 21:50 218 查看
#include <bits/stdc++.h>
using namespace std;
struct _int{
int a1[510];
_int(){memset(a1, 0, sizeof a1);}
_int operator * (const _int &t)const{
_int ans;
for(int i = 1; i <= 500; i ++){
for(int j = 1; j <= 500; j ++){
if(i+j-1 <= 500) ans.a1[i+j-1] += a1[i]*t.a1[j];
}
}
for(int i = 1; i <= 500; i ++){
if(ans.a1[i]/10){
ans.a1[i+1] += ans.a1[i]/10;
ans.a1[i] %= 10;
}
}
return ans;
}
_int operator = (const int t1)const{
int len = 0, t = t1;
_int ans;
while(t){
ans.a1[++len] = t%10;
t /= 10;
}
}
void print(){
for(int i = 500; i >= 1; i --){
printf("%d", a1[i]);
if(i%50 == 0) printf("\n");
}
}
};
int a1[510], a2[510];
int main(){
int n;
scanf("%d", &n);
cout << log(2)/log(10) << endl;
cout << n*log(2) << endl;
printf("%d\n", n*log(2));
_int a, b;
a = 1, b = 2;
for( ; n; n >>= 1, a = a * a) if(n&1) b = b*a;
b.print();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  高精度 模板