版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法设计与分析习题答案(第二版)
主编:吕国英
习题答案
习题答案
第三章:
1.
#include<stdlib.h>
#include<stdio.h>
intmain(intargc,char**argv)
{
intn;
inti,j,k;
int*buf;
printf("请输入n的数值:");
scanf&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+l]+=buf[k]/10;
buf[k]%=10;
}
}
for(i=n-l;i>=0;i一)
printfbuf[i]);
printf('\n");
return0;
}
2.
#include<stdio.h>
intmain(intargc,char**argv)
intbuf[6][6];
inti,j;
printf("任意输入6个数字:");
for(i=0;i<6;i++)
scanf&buf[0][i]);
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
buf[i+l][j+l]=buf[i][j];
)
buf[i+l][0]=buf[i][j];
}
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
printf("%d",buf
printf(〃\n〃);
return0;
3.
#include<stdio.h>
#defineN7
intmain(intargc,char**argv)
{
intbuf[N][N];
inti,j,k,m,n;
inta=0,b=N-l;
intcount=l;
for(i=0;i<(N/2)+(N%2);i++)
{
for(j=a;j<=b;j++)
{
buf[a][j]=count++;
}
for(k=a+l;k<=b;k++)
{
buf[k][b]=count++;
)
for(m=b-1;m>=a;m-)
buf[b][m]=count++;
for(n=b-l: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;
}
4.
#include<stdio.h>
#defineN5
intmain(intargc,char**argv)
intbuf[N][N];
inti,j,k;
intcount=l;
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;
}
5.
#include<stdio.h>
#defineN5
intmain(intargc,char**argv)
intbuf[N][N];
inti,j;
inta=0,b=N-l;
intcount=l;
for(i=0;i〈N/2+N%2;i++)
{
for(j=a;j<=b;j++)
buf[a][j]=count;
for(j=a+l;j<=b;j++)
buf[j][b]=count;
for(j=b-l;j>=a;j—)
buf[b][j]=count;
for(j=b-l;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;
}
6.
#include<stdio.h>
#include<stdlib.h>
typedefstructsnodes_list;
typedefslist*link;
structs_node
{
charch;
intflag;
linknext;
);
linktop;
voidpush(charch,intflag)
{
linknewnode;
newnode=(link)malloc(sizeof(s_list));
newnode->ch=ch;
newnode->f1ag=f1ag;
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;
case'*':
return3;
break;
case'/':
return4;
break;
default:
return5;
voidnirnava(char*buf,intcount)〃count个数,buf数组
intbool=l;
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+l]==')'))
(
buf[flag]!';
buf[i]='!';
min=op(buf[flag]);
for(j=flag+l;j<i;j++)
]
if(buf[j]=='(')
(
push(buf[j],j);
bool=0;
continue;
)
else
if(buf[j]=='Y)
{
pop0;
bool=l;
continue;
}
if(bool-1)
(
if(min>op(buf[j]))
min=op(buf[j]);
if(i<count-l)
if((buf[i+l]=='+'):(buf[i+l]=='-'))
(
if(flag==O)
(
buf[i]='!';
buf[flag]=,!";
)
else
if(op(buf[flag-1])<=min)
(
buf[i]='!’;
buf[flag]=,!';
)
)
else
if((buf[i+1]—'*')||(buf[i+l]=='/'))
if(flag==0)
buf[i]='!';
buf[flag]=,!';
)
else
if((min>=op(buf[i+l])&&op(buf[flag-1])<=min))
(
buf[i]='!';
buf[flag]='!';
)
}
)
else
if(i-count-l)
(
if(flag—0)
{
buf[i]=’!’;
buf[flag]=,!';
}
else
if(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("枇”,&buf[i]);
if(buf[1]=='\n,)
break;
buf[i]='\0';
nirnava(buf,i);
return0;
}
7.
#include<stdio.h>
#include<stdlib.h>
intack(intm,intn);
intcount=0;
intmain(intargc,char**argv)
{
intm,n;
scanf(z/%d%d/z,&m,&n);
printf(“刎\n",ack(m,n));
printf("%d\n",count);
return0;
}
intack(intm,intn)
{
count++;
if(m==0)
returnn+1;
else
if(n==0)
returnack(m-1,1);
else
returnack(m-1,ack(m,n-1));
}
8.
#include<stdio.h>
charbuf[1024];
intishuiwen(inta,intcount)
{
if(a==count/2)
{
return1;
}
else
if(buf[a]—buf[count-a-1])
return(is_huiwen(a-1,count))&&1;
else
return0;
intmain(void)
intcount;
inti;
for(i=0;i<1024;i++)
{
scanf(“枇",&buf[i]);
if(buf[i]—'\n)
break;
}
count=i;
i—;
printf(“刎",is_huiwen(i,count));
return0;
}
9.
#include<stdio.h>
charbuf[100];
intpos(inta,intb)
if(b-a-l)
return1;
else
if(b-a==O)
return1;
else
returnpos(a,b-1)+pos(a,b-2);
}
intmain(void)
{
inta,b;
scanf("%d%d”,&a,&b);
printf(z/%dz/,pos(a,b));
return0;
}
10.
#include<stdio.h>
#defineMAX1024
intbuf[MAX];
intmain(void)
intm,n;
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]=l;
i+=n;
}
for(i=0;i<m;i++)
{
if(buf[i]=0)
printf(z/%d”,i);
}
return0;
}
11.
#include<stdio.h>
intmain(void)
inttemp,tempi;
intcount=0;
intn;
inti;
scanf("%d",&n);
for(i=l;i<=n;i++)
(
temp=i%10;
if(temp-5)
count++;
else
if(temp==0)
(
templ=i;
while((templ%10)==0)
(
templ=templ/10;
count++;
printfcount);
return0;
12.
#include<stdio.h>
intmain(void)
{
intcount=0;
intbuf[53];
inti,n;
for(i=l;i<53;i++)
{
buf[i]=l;
}
for(n=2;;n++)
{
for(i=n;i<53;i+=n)
{
buf[i]=l-buf[i];
count++;
if(count>=104)
break;
if(count>=104)
break;
for(i=l;i<53;i++)
{
if(buf[i]==l)
printf(z/%d”,i);
}
printf('\n");
return0;
}
13.
#include<stdio.h>
intmain(void)
{
inta,b,c,d,e;
for(a=l;a<=5;a++)
for(b=l;b<=5;b++)
if(a!=b)
for(c=l;c<=5;c++)
if(c!=a&&c!=b)
for(d=l;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==l)+(e—
4)==1)&&((c==l)+(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;
}
14.
#include<stdio.h>
intmain(void)
{
intbuf[3];
inti;
intmul;
inttemp;
for(i=10;i<=31;i++)
{
temp=mul;
buf[0]=temp%10;
temp=temp/10;
buf[l]=temp%10;
temp=temp/10;
buf[2]=temp;
if((buf[O]==buf[1])||(buf[0]—buf[2])|(buf[l]-buf[2]))
{
printf("%cT2=%d\n”,i,mul);
}
}
return0;
}
15.
#include<stdio.h>
intmain(void)
{
inta,b,c;
for(a=l;a<=3;a++)
for(b=l;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;
}
16.
#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;
break;
case3:
printf("4and7");
break;
case2:
printf("7");
break;
case1:
printf(〃4〃);
break;
case0:
printf("none");
break;
)
return0;
)
17.
#include<stdio.h>
intmain(void)
inta,b,c,d;
printf("pleasethinkofanumberbetween1and100.\n");
printf(,zyournumberdividedby3hasaremainderof");
scanf&a);
printf(z/yournumberdividedby4hasaremainderof");
scanf&b);
printf(z/yournumberdividedby7hasaremainderof");
scanf('d”,&c);
printf("letmethinkamoment...\n");
d=36*c+28*a+2l*b;
while(d>84)
d=d-84;
z/,,
printf(yournumberwas%d\n,d);
return0;
}
18.
#include<stdio.h>
intmain(void)
intbuf[10];
inti,j;
intmul;
inttempi,temp2;
intbool:
for(i=5000;i〈=9999;i++)
{
bool=0;
for(j=0;j<10;j++)
buf[j]=0:
templ=i;
while(templ>0)
{
if((++buf[templ%10])>1)
]
bool=l;
break;
)
templ/=10;
}
if(bool==l)
continue;
mul=i*2;
temp2=mul;
while(temp2>0)
{
if((++buf[temp2%10])>l)
]
bool=l;
break;
}
temp2/=10;
}
if(bool==l)
continue:
printf("2*%d=%d\n”,i,mul);
}
return0;
}
19.
#include<stdio.h>
#include<stdlib.h>
intppow(inta,intb)
intmul=l;
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&buf[i]);
if(buf[i]->\n')
break;
buf[i]=\0;;
for(j=0;j<i;j++)
if((buf[j]>=,0,)&&(buf[j]<=,9'))
bufEj]=buf[j]-48;
else
if((buf[j]〉='A')&&(buf[j]<='F'))
buf[j]=buf[j]-55;
else
exit(1);
}
k=0;
for(j=i-l;j>=0;j")
{
t=ppow(16,k);
sum=sum+t*(int)buf[j];
k++;
}
printf("%d\n",sum);
return0;
}
20.
#include<stdio.h>
intmain(void)
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]>l)||(++buf[a/10%10]>l))
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]>l)||(++buf[b/10%10]>l)||(++buf[b/100%10]>l
))
continue;
c=a*b;
if(c<10000&&c>999)
if((++buf[c%10]>l)j(++buf[c/10%10]>l)'1(++buf[c/100%l
0]>l)||(++buf[c/1000%10]>l))
continue;
else
printf("%d*%d=%d\n”,a,b,c);
return0;
}
21.
#include<stdio.h>
intmain(void)
{
inta:
intb;
inti;
intt;
intbuf[10];
intbool;
for(a=317;a<l000;a++)
bool=0;
for(i=0;i<10;i++)
buf[i]=0;
if((++buf[a%10]>l)||(++buf[a/10%10]>l)||(++buf[a/100%10
]>D)
continue;
b=a*a;
t=b;
for(i=0;i<6;i++)
{
if(++buf[t%10]>l)
]
bool=l;
break;
)
t=t/10;
}
if(bool-l)
continue;
printf("%(T2=%d\n”,a,b);
return0;
22.
#include<stdio.h>
intmain(void)
(
intbuf[100];
inti;
intn;
intmax;
inttemp;
for(i=l;i<100;i++)
{
scanf("%d”,&buf[i]);
if(buf[i]=0)
break;
}
n=i;
max=buf[l]+buf[2]+buf[3]+buf[4];
for(i=2;i%10!=l;i++)
temp=buf[i%10]+buf[(i+l)%10]+buf[(i+2)%10]+buf[(i+3)%10
];
if(temp>max)
max=temp;
}
printf("max=%d\n”,max);
return0;
}
23.
#include<stdio.h>
voidnirnava(intn)
{
if(n<10)
printf(/z%d",n);
else
{
nirnava(n/10);
printf('%d”,n%10);
intmain(void)
intcount=0;
intn;
inti;
intt;
scanf&n);
t=n;
while(t>0)
{
printf(z/%d",t%10);
t=t/10;
count++;
}
printf('\n");
nirnava(n);
printf("\n%d位数\n”,count);
}
24.
#include<stdio.h>
intmain(void)
{
intbuf[4]={2,3,5,7};
inti,j,k,temp,m;
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(muKlOOO)
continue;
temp=mul;
while(temp>0)
(
if((temp%10—2)||(temp%10==3)(temp%10==5)|(temp%10==7))
{)
else
{
bool=l;
break;
temp/=10;
if(bool==0)
printf("%d%d%d*%d=%d\n”,buf[k],buf[j],buf[i],buf[m],mul);
)
)
return0;
}
25.
#include<stdio.h>
intmain(void)
{
intbuf[4]={2,3,5,7};
inti,j,k,m,n;
intbool;
intmul,mull,mul2;
inttemp,tempi,temp2;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
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);
mull=(buf[i]+buf[j]*10+buf[k]*100)*buf[m];
mul2=(mul-mull)/10;
if((mul<10000)||(mulKlOOO)||(mul2<1000))
continue;
temp=mul;
templ=mull;
temp2=mul2;
while(temp>0)
(
if((temp%10==2)|(temp%10==3)||(temp%10==5)||(temp%10—7))
()
else
(
bool=l;
break;
)
tempAlO;
if(bool==0)
while(templ>0)
if((templ%10==2)'(templ%10==3)||(templ%10==5)||(temp
l%10==7))
{}
else
{
bool=l;
break;
}
templ/=10;
)
)
if(bool==0)
while(temp2>0)
{
if((temp2%10==2)||(temp2%10==3)||(temp2%10==5)||(temp2%
10==7))
()
else
bool=l;
break;
)
temp2/=10;
}
if(bool==0)
(
printf(〃第一行:%d%d%d\n第二行:%d%d\n第三行:%d\n第四
行:机l\n第五行:
%d\n\n\n\n\n”,buf[i],buf[j],buf[k],buf[m],buf[n],mull,mul2,mu
1);
)
}
return0;
}
26.
#include<stdio.h>
〃从a到b是不是循环节
intis_xunhuan(int*buf,inta,intb)
{
inti;
if(a==b)
for(i=l;i<10;i++)
if(buf[a]—buf[a+i])
()
else
return0;
else
for(i=a;i〈=b;i++)
(
if(buf[i]-buf[i+b-a+1])
{}
else
(
return0;
return1;
intmain(void)
intbuf[1024];
intyushu;
intm,n;
inti,j,k;
scanf(z/%d%d/z,&m,&n);
yushu=m;
buf[0]=0;
i=l;
while(yushu!=0)
{
yushu=yushu*10;
buf[i]=yushu/n;
yushu=yushu%n;
i++;
if(i==1024)
break;
}
if(i<1024)
printf("有限小数\n");
printf("%d.”,buf[0]);
for(j=l;j<i;j++)
printf('%d”,buf[j]);
printf('\n");
}
else
{
printf("循环小数\n");
for(i=l;i<100;i++)
for(j=i;j<200;j++)
(
if(isxunhuan(buf,i,j))
(
printf("刎.buf[0]);
if(i>l)
{
for(k=l;k<i;k++)
printf('%d”,buf[k]);
}
printf("(");
for(k=i;k〈=j;k++)
printfbuf[k]);
printf(〃)〃);
printf('\n");
return0:
return0;
}
27.
#include<stdio.h>
intmain(void)
{
intn;
chareng[12][10]={“一月〃,〃二月〃,"三月〃,"四月〃,〃五月〃,"六月〃
七月","八月〃,〃九月〃,“十月〃,〃十一月〃,“十二月"};
scanf&n);
printf(z/%s\nz/,eng[n-l]);
return0;
}
第四章
1.
ttinclude<stdio.h>
intmain(void)
intbuf[100];
intn;
inti,j,k;
scanf("%d",&n);
for(i=0;i<n;i++)
buf[i]=2;
for(i=0;i<n-l;i++)
(
for(j=0;j<n-i-l;j++)
(
buf[j]+=2;
)
)
for(j=0;j<n;j++)
(
if(buf[j]>=10)
(
buf[j+l]+=buf[j]/10;
buf[j]=buf[j]%10;
}
)
for(i=n-l;i>=0;i)
printf(绘d”,buf[i]);
printfC\n/z);
return0;
)
2.
#include<stdio.h>
intmain(void)
{
intn=2;
inti;
for(i=l;i<=9;i++)
(
n=(n+2)*2;
)
printf(绘d\n”,n);
return0;
)
3.
#include<stdio.h>
intmain(void)
(
inta=54;
intn;
intm;
printf(〃计算机先拿3张牌\n〃);
a=a-3;
while(a>=0)
(
printf(〃还剩%<1张牌\n〃,a);
printf(〃你拿几张?请输入:〃);
scanf&n);
if(n>4||n<l|In>a)
(
printf(〃错误!重新拿牌\n〃);
continue;
}
a=a-n;
printf(“还剩%d张牌\n〃,a);
if(a=0)
break;
m=5一n;
printf("计算机拿%d\n〃,m);
a=a-m;
)
return0;
)
4.
#include<stdio.h>
intd;
intal,a2;
intfun(intn);
intmain(void)
(
intn;
printffn=?,d=?,al=?,a2=?z,);
scanf(//%d%d%d%d\n,/,&n,&d,&al,&a2);
printf(线d\n〃,fun(n));
return0;
)
intfun(intn)
(
if(n==l)
returnal;
if(n==2)
returna2;
returnfun(n-2)-(fun(n-1)-d)*2;
5.
#include<stdio.h>
charchess[8][8];
intis_safe(introw,intcol);
intqueen(introw,intcol,intn);
intmain(void)
(
inti,j;
for(i=0;i<8;i++)
for(j=0;j<8;j++)
chess[i][j]='X';
queen(0,0,0);
for(i=0;i<8;i++)
(
for(j=0;j<8;j++)
printf(,z%c”,chess[i][j]);
printfC\nO;
)
return0;
)
intis_safe(introw,intcol)
(
inti,j;
for(i=0;i<8;i++)
(
if(chess[row][i]=二'Q')
return0;
if(chess[i][col]==,Q')
return0;
)
i=row;
j=col;
while(i!=-l&&j!=-l)
(
if(chess[i-][j―1—Q')
return0;
)
i=row;
j=col;
whiled!=-l&&j!=8)
(
if(chess[i―][j++]='Q')
return0;
i=row;
j=col;
while(i!=8&&j!=-l)
(
if(chess[i++][j--]='Q')
return0;
)
i=row;
j=col;
while(i!=8&&j!=8)
(
if(chess[i++][j++]=,Q')
return0;
)
return1;
)
intqueen(introw,intcol,intn)
(
inti,j;
intresult=0;
if(n==8)
return1;
else
if(is_safe(row,col))
(
chess[row][col]='Q';
for(i=0;i<8;i++)
for(j=0;j<8;j++)
(
result+=queen(i,j,n+1);
if(result>0)
break;
}
if(result>0)
return1;
else
{
chess[row][col]=,X';
return0;
}
else
return0;
}
6.
#include<stdio.h>
intmain(void)
(
inti,j,k;
for(i=l;i<=33;i++)
for(j=l;j<=50;j++)
(
k=100-i-j;
if(k%2==0)
(
if(3*i+2*j+k/2==100)
printf(〃大马%d\n中马%d\n小马%d\n\n\n”,i,j,k);
}
)
return0;
}
7.
#include<stdio.h>
intmain(void)
(
inti;
for(i=l;i<=10000;i++)
(
if(i%2==l&&i%3=2&&i%5=4&&i%6==5&&i%7=0)
printf("%d\n〃,i);
)
return0;
}
8.
#include<stdio.h>
intmain(void)
(
inti;
intsum;
intal,a2,a3,a4;
for(i=1000;i<=9999;i++)
al=i%10;
a2=i/10%10;
if(al!=a2)
a3=i/100%10;
if(al!=a3&&a2!=a3)
(
a4=i/1000;
if(al!=a4&&a2!=a4&&a3!=a4)
(
sum=(al+a2+a3+a4)*(al+a2+a3+a4);
if(i%sum==O)
printf(/z%d\n/z,i);
)
}
}
)
return0;
)
9.
#include<stdio.h>
^defineN10
voidmaxmin(int*a,intm,intn,intint*min2,int*maxl,int*max2);
intmain(void)
(
inta[N]={2,3,4,5,34,7,9,6,43,21);
intmini,min2;
intmaxi,max2;
max_min(a,0,NT,&minl,&min2,&max1,&max2);
printf(,/minl=%d\nmin2=%d\nmaxl=%d\nmax2=%d\n//,mini,min2,maxi,max2);
return0;
}
voidmaxmin(int*a,intm,intn,intint*min2,int*maxl,int*max2)
(
intIminl,lmin2,Imaxl,lmax2;
intrminl,rmin2,rmaxl,rmax2;
intmid;
if(m=n)
(
*minl=*n)in2=*maxl=*max2=a[m];
)
else
if(m==n-l)
(
if(a[m]<a[n])
{
*n)inl=a[m];
*min2=a[n];
*maxl=a[n];
*max2=a[m];
)
else
(
*minl=a[n];
*min2=a[m];
*maxl=a[m];
*max2=a[n];
)
)
else
(
mid二(m+n)/2;
max_min(a,m,mid,&lmin2,&lmaxl,&lmax2);
max_min(a,mid+1,n,&rminl,&rmin2,&rmaxl,&rmax2);
if(IminKrminl)
(
if(lmin2<rminl)
(
*min2=lmin2;
)
else
(
*minl=lminl;
*min2=rminl;
)
)
else
if(rmin2<lminl)
(
*minl=rminl;
*min2=rmin2;
}
else
(
*minl=rminl;
*min2=lminl;
)
if(lmaxl>rmaxl)
if(lmax2>rmaxl)
*maxl=lmaxl;
*max2=lmax2;
}
else
(
*maxl=lmaxl;
*max2=rmaxl;
}
)
else
if(rmax2>lmaxl)
(
*maxl=rmaxl;
*max2=rmax2;
}
else
(
*maxl=rmaxl;
*max2=lmaxl;
)
)
)
10.
#include<stdio.h>
intadd(int*a,intflag,intright);
intmain(void)
(
inta[10]={l,2,3,4,5,6,7,8,9,10);
intsum=add(a,0,9);
printf(,z%d\n,z,sum);
return0;
)
intadd(int*a,intflag,intright)
(
intmid;
if(flag==right)
(
returna[flag];
)
else
if(flag==right-l)
returna[flag]+a[right];
else
mid=(flag+right)/2;
returnadd(a,flag,mid)+add(a,mid+1,right);
)
}
11.
#include<stdio.h>
intmain(void)
(
inta[5][3]={
{-50,17,-42),
{-47,-19,-3),
{36,-34,-43},
{-30,-43,34},
{-23,-8,-45}
};
inti,j;
intmax,n;
intsum=0;
for(i=0;i<5;i++)
(
max=a[i][0];
n=0;
for(j=l;j<3;j++)
(
if(a[i][j]>max)
(
max=a[i][j];
n=j;
}
)
sum+=max;
printf(,za[%d][%d]=%d\nz,,i,n,max);
)
printfC/%d\n,/,sum);
return0;
)
12.
/*
*File:newmain.c
*Author:nirnava
*
*Createdon2010年4月22日,下午5:21
*/
#include<stdio.h>
#include<stdlib.h>
#defineN4
voidmatrix_mul(intint*mul2,int*mul3,intlength);
voidmatrix_add_sub(int*A,int*B,int*C,intm,charch);
voidupdate_half_value(int*A,int*B,intm);
voidget_half_value(int*A,int*B,intm);
intmain(void)
(
inti,j;
intmull[N*N]={1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6};
intmul2[N*N]={7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2};
intmu13[N*N];
matrix_mul(mull,mu12,mul3,N);
for(i=0;i<N*N;i++)
(
printf("%5d〃,mul3[i]);
if((i+l)%N==0)
printf(〃\n〃);
)
return0;
)
voidmatrix_add_sub(int*A,int*B,int*C,intm,charch)
(
inti;
for(i=0;i++)
(
if(ch==,+')
C[i]=A[i]4-B[i];
else
)
}
voidupdate_half_value(int*A,int*B,intm)
(
inti,j;
for(i=0;i<m/2;i++)
(
for(j=0;j<m/2;j++)
B[i*m+j]=A[i*m/2+j];
}
}
voidget_half_value(int*A,int*B,intm)
(
inti,j;
for(i=0;i<m/2;i++)
(
for(j=0;j<m/2;j++)
{
A[i*m/2+j]=B[i*m+j];
)
)
)
voidmatrix_mul(int*A,int*B,int*C,intm)
(
if(m==2)
(
intD,E,F,G,H,I,J;
D=A[0]*(B[l]-B[3]);
E=A[3]*(B[2]-B[0]);
F=(A[2]+A[3])*B[0]:
G=(A[0]+A[l])*B[3];
H=(A[2]-A[0])*(B[0]+B[l]);
I=(A[1]-A[3])*(B[2]+B[3]);
J=(A[0]+A[3])*(B[0]+B[3]);
C[0]=E+I+J-G;
C[1]=D+G;
C[2]=E+F;
C[3]=D+H+J-F;
return;
)
else
(
intAl,A2,A3[m*m/4],A4[m*m/4];
intBl[m*m/4],B2[m*m/4],B3[m*m/4],B4[m*m/4];
intCl[m*m/4],C2[m*m/4],C3[m*m/4],C4[m*m/4];
intD[m*m/4],E[m*m/4],F[m*m/4],G[m*m/4],H,I,J[m*m/4];
inttempitemp2[m*m/4];
get_half_value(Al,&A[0],m);
gethalfvalue(A2,&A[m/2],m);
get_half_value(A3,&A[m*m/2],m);
gethalfvalue(A4,&A[m*m/2+m/2],m);
get_half_value(B1,&B[0],m);
get_half_value(B2,&B[m/2],m);
get_half_value(B3,&B,m);
get_half_value(B4,&B[m*m/2+m/2],m);
matrix_add_sub(B2,B4,tempi,m/2,',);
matrix_mul(Al,tempi,D,m/2);
matrix_add_sub(B3,Bl,tempi,m/2,';
matrix_mul(A4,tempi,E,m/2);
matrix_add_sub(A3,A4,tempi,m/2,';
matrix_mul(tempi,Bl,F,m/2);
matrix_add_sub(Al,A2,tempi,m/2,';
matrixmul(tempi,B4,G,m/2);
matrix_add_sub(A3,Al,tempi,m/2,'」);
matrix_add_sub(B1,B2,temp2,m/2,';
matrix_mul(tempi,temp2,H,m/2);
matrix_add_sub(A2,A4,tempi,m/2,';
matrix_add_sub(B3,B4,temp2,m/2,';
matrix_mul(tempi,temp2,1,m/2);
matrix_add_sub(Al,A4,tempi,m/2,';
matrixaddsub(Bl,B4,temp2,m/2,';
matrix_mul(tempi,temp2,J,m/2);
matrixaddsub(E,I,tempi,m/2,';
matrix_add_sub(J,G,temp2,m/2,1-);
matrix_add_sub(temp1,temp2,Cl,m/2,';
matrix_add_sub(D,G,C2,m/2,';
matrix_add_sub(E,F,C3,m/2,';
matrix_add_sub(D,H,tempi,m/2,';
matrixaddsub(J,F,temp2,m/2,‘,);
matrix_add_sub(tempi,temp2,C4,m/2,';
updatehalfvalue(Cl,&C[0],m);
update_half_value(C2,&C[m/2],m);
updatehalfvalue(C3,&C[m*m/2],m);
update_half_value(C4,&C[m*m/2+m/2],m);
return;
)
}
13.
#include<stdio.h>
intmain(void)
(
inta[6][7]={
{16,4,3,12,6,0,3),
{4,-5,6,7,0,0,2),
(6,0,-1,-2,3,6,8),
{5,3,4,0,0,-2,7),
{-1,7,4,0,7,-5,6},
(0,-1,3,4,12,4,2}
);
intb[6][7],c[6][7];
inti,j,k;
intmax;
intflag;
inttemp;
for(i=0;i<6;i++)
for(j=0;j<7;j++)
(
b[i][j]=a[i][j];
c[i]
)
for(i=l;i<5;i++)
(
for(j=0;j<7;j++)
(
max=0;
for(k=j-2;k<=j+2;k++)
(
if(k<0)
continue;
else
if(k>6)
break;
else
{
if(b[i][j]+b[i-l][k]>max)
{
max=b[i][j]+b[i-l][k];
flag=k;
)
)
)
b[i][j]=max;
c[i][j]=flag;
)
)
for(j=l;j<=5;j++)
(
max=0;
for(k=j-2;k<=j+2;k++)
if(k<0)
continue;
else
if(k>6)
break;
else
(
if(b[i][j]+b[i-l][k]>max)
(
max=b[i][j]+b[i-l][k];
flag=k;
)
)
)
b[i][j]=max;
c[i][j]=flag;
)
max=0;
for(j=l;j<=5;j++)
(
if(b[i][j]>max)
(
max=b[i][j];
flag=j;
)
)
printf(〃%d\n〃,max);
temp=c[i][flag];
printf("%5d〃,a[i][temp]);
for(j=i;j>0;j—)
(
temp=c[j][temp];
printf("%5d”,a[j-l][temp]);
)
printf(〃\n〃);
return0;
)
14.
#include<stdio.h>
intmain(void)
intA[6]={0,3,7,9,12,13};
intB[6]={0,5,10,11,11,11);
intC[6]={0,4,6,11,12,12);
intAB[6][6];
inttemp[6];
intabc[6];
intmax;
intflag;
inti,j,k;
for(i=0;i<=5;i++)
(
max=O;
for(j=0;j<=i;j++)
(
AB[i][j]=A[i-j>B[j];
if(AB[i][j]>max)
max=AB[i][j];
)
temp[i]=max;
)
max=0;
for(i=0;i<=5;i++)
(
abc[i]=temp[i]+C[5-i];
if(abc[i]>max)
(
max=a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老保险知识
- 初级会计实务-初级会计《初级会计实务》模拟试卷479
- 基于转录组测序技术探讨陇中消肿止痛合剂对脊髓损伤星形胶质细胞来源外泌体miRNAs作用机制研究
- 二零二五版环保材料箱包生产与分销合同3篇
- 二零二五年度企业员工拓展训练方案合同3篇
- 二零二五年度行政法丨行政协议专项审计与报告合同2篇
- 二零二五年度股东退股协议书(高科技产业适用)3篇
- 二零二五年度个人健康产业投资合同范本2篇
- 二零二五年度少儿图书出版与销售合同样本3篇
- 2025版食品加工企业员工劳动合同范本(含保密条款)2篇
- 2024-2025学年山东省潍坊市高一上册1月期末考试数学检测试题(附解析)
- 江苏省扬州市蒋王小学2023~2024年五年级上学期英语期末试卷(含答案无听力原文无音频)
- 数学-湖南省新高考教学教研联盟(长郡二十校联盟)2024-2025学年2025届高三上学期第一次预热演练试题和答案
- 决胜中层:中层管理者的九项修炼-记录
- 幼儿园人民币启蒙教育方案
- 临床药师进修汇报课件
- 北京市首都师大附中2025届数学高三第一学期期末达标测试试题含解析
- 军事理论(2024年版)学习通超星期末考试答案章节答案2024年
- 《无人机法律法规知识》课件-第1章 民用航空法概述
- 政治丨广东省2025届高中毕业班8月第一次调研考试广东一调政治试卷及答案
- 2020-2024年安徽省初中学业水平考试中考物理试卷(5年真题+答案解析)
评论
0/150
提交评论