算法设计与分析习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法设计与分析习题答案(第二版)
主编:吕国英习题答案
习题答案
第三章:
1.
#include
#include
int main(int argc,char **argv) {
int n;
int i,j,k;
int *buf;
printf(" 请输入n 的数值:");
scanf("%d",&n);
buf=(int *)malloc(n*sizeof(int));
for(i=0;i { buf[i]=2; } for(i=n-2;i>=0;i--) for(j=i;j>=0;j--) { buf[j]+=2; } } for(k=0;k<=n-2;k++) { if(buf[k]>=10) { buf[k+1]+=buf[k]/10; buf[k]%=10; } } for(i=n-1;i>=0;i--) printf("%d",buf[i]); printf("\n"); return 0; } 2. #include printf(" 任意输入6 个数字:"); for(i=0;i<6;i++) scanf("%d",&buf[0][i]); for(i=0;i<5;i++) { for(j=0;j<5;j++) { buf[i+1][j+1]=buf[i][j]; } buf[i+1][0]=buf[i][j]; } for(i=0;i<6;i++) { for(j=0;j<6;j++) printf("%d ",buf[i][j]); printf("\n"); } return 0; 3. #include #define N 7 int main(int argc,char **argv) { int buf[N][N]; int i,j,k,m,n; int a=0,b=N-1; int count=1; for(i=0;i<(N/2)+(N%2);i++) { for(j=a;j<=b;j++) { buf[a][j]=count++; } for(k=a+1;k<=b;k++) { buf[k][b]=count++; } for(m=b-1;m>=a;m--) buf[b][m]=count++; for(n=b-1;n>a;n--) { buf[n][a]=count++; } a++; b--; } for(i=0;i { for(j=0;j printf("%5d",buf[i][j]); printf("\n"); } return 0; } 4. #include #define N 5 int main(int argc,char **argv) { int buf[N][N]; int i,j,k; int count=1; int n=0; for(i=0;i { for(k=0,j=n;j>=0;j--,k++) buf[j][k]=count++; n++; } for(i=0;i { for(j=0;j printf("%5d",buf[i][j]); printf("\n"); } return 0; } 5. #include #define N 5 int main(int argc,char **argv) { int buf[N][N]; int i,j; int a=0,b=N-1; int count=1; for(i=0;i { for(j=a;j<=b;j++) buf[a][j]=count; for(j=a+1;j<=b;j++) buf[j][b]=count; for(j=b-1;j>=a;j--) buf[b][j]=count; for(j=b- 1;j>a;j--) buf[j][a]=count; count++; a++; b--; } for(i=0;i { for(j=0;j printf("%5d",buf[i][j]); printf("\n");