算法設計與分析習題答案_第1頁
算法設計與分析習題答案_第2頁
算法設計與分析習題答案_第3頁
算法設計與分析習題答案_第4頁
算法設計與分析習題答案_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

算法設計與分析習題答案(第二版)主編:呂國英習題答案習題答案第三章:#include<stdlib.h>#include<stdio.h>intmain(intargc,char**argv){intn;inti,j,k;int*buf;printf("請輸入n的數值:");scanf("%d",&n);buf=(int*)malloc(n*sizeof(int));for(i=0;i<n;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");return0;}#include<stdio.h>intmain(intargc,char**argv)intbuf[6][6];inti,j;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");}return0;#include<stdio.h>#defineN7intmain(intargc,char**argv)(intbuf[N][N];inti,j,k,m,n;inta=0,b=N-1;intcount=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<N;i++){for(j=0;j<N;j++)printf("%5d",buf[i][j]);printf("\n");}return0;}#include<stdio.h>#defineN5intmain(intargc,char**argv){intbuf[N][N];inti,j,k;intcount=1;intn=0;for(i=0;i<N;i++){for(k=0,j=n;j>=0;j--,k++)buf[j][k]=count++;n++;}for(i=0;i<N;i++){for(j=0;j<N-i;j++)printf("%5d",buf[i][j]);printf("\n");}return0;}#include<stdio.h>#defineN5intmain(intargc,char**argv)intbuf[N][N];inti,j;inta=0,b=N-1;intcount=1;for(i=0;i<N/2+N%2;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<N;i++)(for(j=0;j<N;j++)printf("%5d",buf[i][j]);printf("\n");return0;}#include<stdio.h>#include<stdlib.h>typedefstructs_nodes_list;typedefs_list*link;structs_node{charch;intflag;linknext;};linktop;voidpush(charch,intflag){linknewnode;newnode=(link)malloc(sizeof(s_list));newnode->ch=ch;newnode->flag=flag;}}}}newnode->next=NULL;if(top==NULL){top=newnode;}else{newnode->next=top;top=newnode;}}intpop(){intflag;linkstack;if(top!=NULL){stack=top;top=top->next;flag=stack->flag;free(stack);}}}}returnflag;}intop(charch){switch(ch){case'+':return1;break;case'-':return2;break;casereturn3;break;case'/':return4;break;default:return5;

個數,buf數組個數,buf數組intbool=1;intmin;intj;inti;intk;intflag;for(i=0;i<count;i++){if(buf[i]=='(')push(buf[i],i);if(buf[i]==')'){flag=pop();if(flag!=0){if((buf[flag-1]=='(')&&(buf[i+1]==')')){buf[flag]='!';buf[i]='!';min=op(buf[flag]);for(j=flag+1;j<i;j++){if(buf[j]=='('){push(buf[j],j);bool=0;continue;}elseif(buf[j]==')'){pop();bool=1;continue;}if(bool==1){if(min>op(buf[j]))min=op(buf[j]);{{if(i<count-1)(if((buf[i+1]=='+')||(buf[i+1]=='-'))(if(flag==0)(buf[i]='!';buf[flag]='!';)elseif(op(buf[flag-1])<=min)(buf[i]='!';buf[flag]='!';))elseif((buf[i+1]=='*')||(buf[i+1]=='/'))(if(flag==0)(buf[i]='!';buf[flag]='!';}elseif((min>=op(buf[i+1])&&op(buf[flag-1])<=min)){buf[i]='!';buf[flag]='!';}}}elseif(i==count-1){if(flag==0){buf[i]='!';buf[flag]='!';}elseif(op(buf[flag-1])<=min)buf[i]='!';buf[flag]='!';}}}}for(k=0;k<count;k++){if(buf[k]!='!')printf("%c",buf[k]);}printf("\n");}intmain(void){charbuf[255];inti;for(i=0;i<255;i++){scanf("%c",&buf[i]);if(buf[i]=='\n')break;}}if(m==0)if(m==0)}}if(m==0)if(m==0)buf[i]='\0';nirnava(buf,i);return0;}#include<stdio.h>#include<stdlib.h>intack(intm,intn);intcount=0;intmain(intargc,char**argv){intm,n;scanf("%d%d",&m,&n);printf("%d\n",ack(m,n));printf("%d\n",count);return0;}intack(intm,intn){count++;returnn+1;elseif(n==0)returnack(m-1,1);elsereturnack(m-1,ack(m,n-1));}#include<stdio.h>charbuf[1024];intis_huiwen(inta,intcount){if(a==count/2){return1;}elseif(buf[a]==buf[count-a-1])return(is_huiwen(a-1,count))&&1;elsereturn0;intmain(void){intcount;inti;for(i=0;i<1024;i++){scanf("%c",&buf[i]);if(buf[i]=='\n')break;}count=i;i--;printf("%d",is_huiwen(i,count));return0;}#include<stdio.h>charbuf[100];intpos(inta,intb){inttemp,temp1;inttemp,temp1;inttemp,temp1;inttemp,temp1;intm,n;intm,n;if(b-a==1)return1;elseif(b-a==0)return1;elsereturnpos(a,b-1)+pos(a,b-2);}intmain(void){inta,b;scanf("%d%d",&a,&b);printf("%d",pos(a,b));return0;}#include<stdio.h>#defineMAX1024intbuf[MAX];intmain(void){inti;scanf("%d%d",&m,&n);for(i=0;i<MAX;i++)buf[i]=0;i=0;while(buf[i%m]==0){buf[i%m]=1;i+=n;}for(i=0;i<m;i++){if(buf[i]==0)printf("%d",i);}return0;}#include<stdio.h>intmain(void){intcount=0;intn;inti;scanf("%d",&n);for(i=1;i<=n;i++){temp=i%10;if(temp==5)count++;elseif(temp==0){temp1=i;while((temp1%10)==0){temp1=temp1/10;count++;}}}printf("%d",count);return0;if(count>=104)if(count>=104)if(count>=104)if(count>=104)}#include<stdio.h>intmain(void){intcount=0;intbuf[53];inti,n;for(i=1;i<53;i++){buf[i]=1;}for(n=2;;n++){for(i=n;i<53;i+=n){buf[i]=1-buf[i];count++;if(count>=104)break;break;for(i=1;i<53;i++)(if(buf[i]==1)printf("%d",i);)printf("\n");return0;)#include<stdio.h>intmain(void)(inta,b,c,d,e;for(a=1;a<=5;a++)for(b=1;b<=5;b++)if(a!=b)for(c=1;c<=5;c++)if(c!=a&&c!=b)for(d=1;d<=5;d++)if(d!=a&&d!=b&&d!=c)e=15-a-b-c-d;if(e!=a&&e!=b&&e!=c&&e!=d)if(((b==3)+(c==5)==1)&&((d==2)+(e==4)==1)&&((b==1)+(e==4)==1)&&((c==1)+(b==2)==1)&&((d==2)+(a==3)==1))printf("a=%d,b=%d,c=%d,d=%d,e=%d",a,b,c,d,e);)return0;)#include<stdio.h>intmain(void)(intbuf[3];inti;intmul;inttemp;for(i=10;i<=31;i++)(mul=i*i;temp=mul;buf[0]=temp%10;temp=temp/10;buf[1]=temp%10;temp=temp/10;buf[2]=temp;if((buf[0]==buf[1])||(buf[0]==buf[2])||(buf[1]==buf[2]))(printf("%dA2=%d\n",i,mul);))return0;)#include<stdio.h>intmain(void)(inta,b,c;for(a=1;a<=3;a++)for(b=1;b<=3;b++)if(a!=b)c=6-a-b;if(c!=a&&c!=b)if((a!=1)&&((c!=1)&&(c!=3))==1)printf("a=%d,b=%d,c=%d",a,b,c);}return0;}#include<stdio.h>intmain(void){intk;intn;scanf("%d",&n);k=(n%4==0)+(n%7==0)*2+(n%9==0)*4;switch(k){case7:printf("all");break;case6:printf("7and9");break;case5:printf("4and9");break;case4:printf("9");break;case3:printf("4and7");break;case2:printf("7");break;case1:printf("4");break;case0:printf("none");break;}return0;}#include<stdio.h>intmain(void){inta,b,c,d;printf("pleasethinkofanumberbetween1and100.\n");printf("yournumberdividedby3hasaremainderof");scanf("%d",&a);printf("yournumberdividedby4hasaremainderof");scanf("%d",&b);printf("yournumberdividedby7hasaremainderof");scanf("%d",&c);printf("letmethinkamoment...\n");d=36*c+28*a+21*b;while(d>84)d=d-84;printf("yournumberwas%d\n",d);return0;}#include<stdio.h>intmain(void){intbuf[10];inti,j;intmul;inttemp1,temp2;intbool;for(i=5000;i<=9999;i++){bool=0;for(j=0;j<10;j++)buf[j]=0;temp1=i;while(temp1>0){if((++buf[temp1%10])>1){bool=1;break;}temp1/=10;}if(bool==1)continue;mul=i*2;temp2=mul;while(temp2>0){if((++buf[temp2%10])>1){bool=1;break;}temp2/=10;}if(bool==1)continue;printf("2*%d=%d\n",i,mul);}return0;}#include<stdio.h>#include<stdlib.h>intppow(inta,intb){intmul=1;inti;for(i=0;i<b;i++){mul=a*mul;}returnmul;}intmain(void){intt;charbuf[10];inti,j,k;intsum=0;for(i=0;i<10;i++){scanf("%c",&buf[i]);if(buf[i]=='\n')break;}buf[i]='\0';for(j=0;j<i;j++)intmain(void)intmain(void)intmain(void)intmain(void){if((buf[j]>='0')&&(buf[j]<='9'))buf[j]=buf[j]-48;elseif((buf[j]>='A')&&(buf[j]<='F'))buf[j]=buf[j]-55;elseexit(1);}k=0;for(j=i-1;j>=0;j--){t=ppow(16,k);sum=sum+t*(int)buf[j];k++;}printf("%d\n",sum);return0;}#include<stdio.h>intbuf[10];intbuf[10];(inta;intb;intc;inti;intbuf[10];for(a=10;a<=99;a++)(for(i=0;i<10;i++)buf[i]=0;if((++buf[a%10]>1)||(++buf[a/10%10]>1))continue;for(b=100;b<=999;b++)(for(i=0;i<10;i++)(if((i!=a%10)&&i!=a/10%10)buf[i]=0;}if((++buf[b%10]>1)||(++buf[b/10%10]>1)||(++buf[b/100%10]>1))continue;c=a*b;if(c<10000&&c>999){if((++buf[c%10]>1)||(++buf[c/10%10]>1)||(++buf[c/100%10]>1)||(++buf[c/1000%10]>1))continue;elseprintf("%d*%d=%d\n",a,b,c);}}}return0;}#include<stdio.h>intmain(void){inta;intb;inti;intt;intbool;for(a=317;a<1000;a++)(bool=0;for(i=0;i<10;i++)buf[i]=0;if((++buf[a%10]>1)||(++buf[a/10%10]>1)||(++buf[a/100%10]>1))continue;b=a*a;t=b;for(i=0;i<6;i++)(if(++buf[t%10]>1)(bool=1;break;}t=t/10;}if(bool==1)continue;intmain(void)intmain(void)intmain(void)intmain(void)for(i=2;i%10!=1;i++)for(i=2;i%10!=1;i++)printf("%dA2=%d\n",a,b);return0;}#include<stdio.h>intmain(void){intbuf[100];inti;intn;intmax;inttemp;for(i=1;i<100;i++){scanf("%d",&buf[i]);if(buf[i]==0)break;}n=i;max=buf[1]+buf[2]+buf[3]+buf[4];temp=buf[i%10]+buf[(i+1)%10]+buf[(i+2)%10]+buf[(i+3)%10];if(temp>max)max=temp;}printf("max=%d\n",max);return0;}#include<stdio.h>voidnirnava(intn){if(n<10)printf("%d",n);else{nirnava(n/10);printf("%d",n%10);}}intcount=0;intn;inti;intt;scanf("%d",&n);t=n;while(t>0){printf("%d",t%10);t=t/10;count++;}printf("\n");nirnava(n);printf("\n%d位數\n",count);}#include<stdio.h>intmain(void){intbuf[4]={2,3,5,7};intbool;intmul;for(i=0;i<4;i++)for(j=0;j<4;j++)for(k=0;k<4;k++)for(m=0;m<4;m++)(bool=0;mul=(buf[i]+buf[j]*10+buf[k]*100)*buf[m];if(mul<1000)continue;temp=mul;while(temp>0)(if((temp%10==2)||(temp%10==3)||(temp%10==5)||(temp%10==7))(}else(bool=1;break;for(j=0;j<4;j++)for(j=0;j<4;j++)for(j=0;j<4;j++)for(j=0;j<4;j++)}temp/=10;}if(bool==0){printf("%d%d%d*%d=%d\n",buf[k],buf[j],buf[i],buf[m],mul);}}return0;}#include<stdio.h>intmain(void){intbuf[4]={2,3,5,7};inti,j,k,m,n;intbool;intmul,mul1,mul2;inttemp,temp1,temp2;for(i=0;i<4;i++)for(k=0;k<4;k++)for(m=0;m<4;m++)for(n=0;n<4;n++)(bool=0;mul=(buf[i]+buf[j]*10+buf[k]*100)*(buf[m]+buf[n]*10);mul1=(buf[i]+buf[j]*10+buf[k]*100)*buf[m];mul2=(mul-mul1)/10;if((mul<10000)||(mul1<1000)||(mul2<1000))continue;temp=mul;temp1=mul1;temp2=mul2;while(temp>0)(if((temp%10==2)||(temp%10==3)||(temp%10==5)||(temp%10==7))(}elsebool=1;break;temp/=10;)if(bool==0)(while(temp1>0)(if((temp1%10==2)||(temp1%10==3)||(temp1%10==5)||(temp1%10==7))()else(bool=1;break;)temp1/=10;))if(bool==0)while(temp2>0)(if((temp2%10==2)||(temp2%10==3)||(temp2%10==5)||(temp2%10==7)){}else{bool=1;break;}temp2/=10;}if(bool==0){printf("第一行:%d%d%d\n第二行:%d%d\n第三行:%d\n第四行:%d\n第五行:%d\n\n\n\n\n",buf[i],buf[j],buf[k],buf[m],buf[n],mul1,mul2,mul);}}return0;}#include<stdio.h>//從a到b是不是循環節intis_xunhuan(int*buf,inta,intb){inti;if(a==b){for(i=1;i<10;i++){if(buf[a]==buf[a+i]){}elsereturn0;}}elsefor(i=a;i<=b;i++){if(buf[i]==buf[i+b-a+1]){}elsereturn0;}}}}return1;}intmain(void){intbuf[1024];intyushu;intm,n;inti,j,k;scanf("%d%d",&m,&n);yushu=m;buf[0]=0;i=1;while(yushu!=0){yushu=yushu*10;buf[i]=yushu/n;yushu=yushu%n;i++;if(i==1024)break;printf("%d",buf[k]);printf("%d",buf[k]);}if(i<1024){printf("有限小數 \n");printf("%d.",buf[0]);for(j=1;j<i;j++)printf("%d",buf[j]);printf("\n");}else{printf("循環小數 \n");for(i=1;i<100;i++)for(j=i;j<200;j++){if(is_xunhuan(buf,i,j)){printf("%d.",buf[0]);if(i>1){for(k=1;k<i;k++)}printf("(");for(k=i;k<=j;k++)printf("%d",buf[k]);printf(")");printf("\n");return0;}}}return0;}#include<stdio.h>intmain(void){intn;chareng[12][10]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};scanf("%d",&n);printf("%s\n",eng[n-1]);return0;第四章#include<stdio.h>intmain(void){intbuf[100];intn;inti,j,k;scanf("%d",&n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論