欢迎来到天天文库
浏览记录
ID:58401111
大小:17.63 KB
页数:8页
时间:2020-05-08
《算法分析与设计(李清勇)——分治.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、4-1整数分解问题#include#include#defineN100intfenjie(intn);voidmain(){intn;intcount;printf("inputanumber");do{scanf("%d",&n);}while(n<0);count=fenjie(n);printf("%d",count);}intfenjie(intn){inti;intk=0;inttemp=0;inta[N];for(i=2;i2、;i++){for(j=0;i #include void suanfa(); void zdlch(int b); void surt(int k); int N;//全局变量 油井数 int s[100];//n个油井y轴坐标 int sumin;//输油管道最小长度void main() { int i; sumin=0; scanf("%3、d",&N); for(i=0;i4、N; int i; while(j!=k) { b=s[0]; for(i=0;i=b) { b=s[i]; l=i; }} m=s[l];s[l]=s[a-1];s[a-1]=m;a--;j++; } zdlch(b); } Void zdlch(int b) //求最小长度的总和 { int i; for(i=0;i5、[i]); }4-4麦森书问题#include #include #include #include #include using namespace std;int f[505];//后500位数void mul(int a)//乘以a{ int i,j,k,temp=0; for(i=0;i<500;i++){ temp=temp+f[i]*a; f[i]=temp%10; temp=temp/10; }}void s6、ub(int x)//减x{ f[0]-=x; int k=0; while(k<500&&f[k]<0){ f[k]=f[k]+10; f[k+1]--; k++; }}int main(){ int n; while(scanf("%d",&n)!=EOF){ int i,j,k; memset(f,0,sizeof(f)); f[0]=1; //这里是分成2^10一段,那样就可以将乘法次数减少1/10 //若还想更快,可以7、再分大点,比如2^20这样,不过最好不要超过int for(i=0;i
2、;i++){for(j=0;i #include void suanfa(); void zdlch(int b); void surt(int k); int N;//全局变量 油井数 int s[100];//n个油井y轴坐标 int sumin;//输油管道最小长度void main() { int i; sumin=0; scanf("%
3、d",&N); for(i=0;i4、N; int i; while(j!=k) { b=s[0]; for(i=0;i=b) { b=s[i]; l=i; }} m=s[l];s[l]=s[a-1];s[a-1]=m;a--;j++; } zdlch(b); } Void zdlch(int b) //求最小长度的总和 { int i; for(i=0;i5、[i]); }4-4麦森书问题#include #include #include #include #include using namespace std;int f[505];//后500位数void mul(int a)//乘以a{ int i,j,k,temp=0; for(i=0;i<500;i++){ temp=temp+f[i]*a; f[i]=temp%10; temp=temp/10; }}void s6、ub(int x)//减x{ f[0]-=x; int k=0; while(k<500&&f[k]<0){ f[k]=f[k]+10; f[k+1]--; k++; }}int main(){ int n; while(scanf("%d",&n)!=EOF){ int i,j,k; memset(f,0,sizeof(f)); f[0]=1; //这里是分成2^10一段,那样就可以将乘法次数减少1/10 //若还想更快,可以7、再分大点,比如2^20这样,不过最好不要超过int for(i=0;i
4、N; int i; while(j!=k) { b=s[0]; for(i=0;i=b) { b=s[i]; l=i; }} m=s[l];s[l]=s[a-1];s[a-1]=m;a--;j++; } zdlch(b); } Void zdlch(int b) //求最小长度的总和 { int i; for(i=0;i5、[i]); }4-4麦森书问题#include #include #include #include #include using namespace std;int f[505];//后500位数void mul(int a)//乘以a{ int i,j,k,temp=0; for(i=0;i<500;i++){ temp=temp+f[i]*a; f[i]=temp%10; temp=temp/10; }}void s6、ub(int x)//减x{ f[0]-=x; int k=0; while(k<500&&f[k]<0){ f[k]=f[k]+10; f[k+1]--; k++; }}int main(){ int n; while(scanf("%d",&n)!=EOF){ int i,j,k; memset(f,0,sizeof(f)); f[0]=1; //这里是分成2^10一段,那样就可以将乘法次数减少1/10 //若还想更快,可以7、再分大点,比如2^20这样,不过最好不要超过int for(i=0;i
5、[i]); }4-4麦森书问题#include #include #include #include #include using namespace std;int f[505];//后500位数void mul(int a)//乘以a{ int i,j,k,temp=0; for(i=0;i<500;i++){ temp=temp+f[i]*a; f[i]=temp%10; temp=temp/10; }}void s
6、ub(int x)//减x{ f[0]-=x; int k=0; while(k<500&&f[k]<0){ f[k]=f[k]+10; f[k+1]--; k++; }}int main(){ int n; while(scanf("%d",&n)!=EOF){ int i,j,k; memset(f,0,sizeof(f)); f[0]=1; //这里是分成2^10一段,那样就可以将乘法次数减少1/10 //若还想更快,可以
7、再分大点,比如2^20这样,不过最好不要超过int for(i=0;i
此文档下载收益归作者所有