解题思路:
注意事项:
参考代码:
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<iostream> using namespace std; int p,k; int a[505],b[1005]; void print(){ cout<<floor(log(2)/log(10)*p+1)<<endl; for(int i=500;i>0;i--) { printf("%d",a[i]); if((i-1)%50==0) printf("\n"); } } void work(int x){ if(x==0) return; work(x/2); memset(b,0,sizeof(b)); for(int i=1;i<=500;i++) for(int j=1;j<=500;j++){ if(x%2==0) b[i+j-1]+=a[i]*a[j]; else b[i+j-1]+=a[i]*a[j]*2; } for(int i=1;i<=500;i++){ a[i]=b[i]%10; b[i+1]+=b[i]/10; } } void cut(){ a[1]--;int i=1; while(a[i]<0) a[i+1]--,a[i]+=10,i++; } int main(){ scanf("%d",&p); a[1]=1;work(p); cut(); print(); } //可用快速幂来做
0.0分
4 人评分
WU-图形输出 (C++代码)浏览:802 |
简单的a+b (C语言代码)浏览:606 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:609 |
完数 (C语言代码)浏览:693 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:529 |
Cylinder (C语言描述+详细分析)浏览:3265 |
P1000 (C语言代码)浏览:877 |
Hello, world! (C语言代码)浏览:714 |
模拟计算器 (C++代码)浏览:806 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:546 |