算法设计与分析习题35文档格式.docx
《算法设计与分析习题35文档格式.docx》由会员分享,可在线阅读,更多相关《算法设计与分析习题35文档格式.docx(60页珍藏版)》请在冰豆网上搜索。
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;
printf("
buf[i]);
\n"
return0;
}
2.
intbuf[6][6];
inti,j;
任意输入6个数字:
6;
scanf("
buf[0][i]);
5;
for(j=0;
j<
j++)
buf[i+1][j+1]=buf[i][j];
buf[i+1][0]=buf[i][j];
%d"
buf[i][j]);
3.
#defineN7
intbuf[N][N];
inti,j,k,m,n;
inta=0,b=N-1;
intcount=1;
(N/2)+(N%2);
for(j=a;
=b;
buf[a][j]=count++;
for(k=a+1;
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--;
N;
%5d"
4.
#defineN5
intn=0;
for(k=0,j=n;
j--,k++)
buf[j][k]=count++;
n++;
N-i;
5.
N/2+N%2;
buf[a][j]=count;
for(j=a+1;
buf[j][b]=count;
for(j=b-1;
buf[b][j]=count;
buf[j][a]=count;
count++;
6.
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;
flag=flag;
next=NULL;
if(top==NULL)
{
top=newnode;
}
else
newnode->
next=top;
intpop()
linkstack;
if(top!
=NULL)
stack=top;
top=top->
next;
flag=stack->
flag;
free(stack);
returnflag;
intop(charch)
switch(ch)
case'
+'
:
return1;
break;
-'
return2;
*'
return3;
/'
return4;
default:
return5;
voidnirnava(char*buf,intcount)//count个数,buf数组
intbool=1;
intmin;
intj;
inti;
intk;
count;
i++)
if(buf[i]=='
('
)
push(buf[i],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;
i;
j++)
if(buf[j]=='
push(buf[j],j);
bool=0;
continue;
else
pop();
bool=1;
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)
if(op(buf[flag-1])<
=min)
if((min>
=op(buf[i+1])&
op(buf[flag-1])<
=min))
if(i==count-1)
k++)
if(buf[k]!
='
%c"
buf[k]);
intmain(void)
charbuf[255];
255;
buf[i]);
\n'
break;
buf[i]='
\0'
nirnava(buf,i);
7.
intack(intm,intn);
intcount=0;
intmain(intargc,char**argv)
intm,n;
%d%d"
m,&
%d\n"
ack(m,n));
count);
intack(intm,intn)
count++;
if(m==0)
returnn+1;
if(n==0)
returnack(m-1,1);
returnack(m-1,ack(m,n-1));
8.
charbuf[1024];
intis_huiwen(inta,intcount)
if(a==count/2)
if(buf[a]==buf[count-a-1])
return(is_huiwen(a-1,count))&
1;
intcount;
1024;
count=i;
i--;
is_huiwen(i,count));
9.
charbuf[100];
intpos(inta,intb)
if(b-a==1)
if(b-a==0)
returnpos(a,b-1)+pos(a,b-2);
inta,b;
a,&
b);
pos(a,b));
10.
#defineMAX1024
intbuf[MAX];
MAX;
buf[i]=0;
i=0;
while(buf[i%m]==0)
buf[i%m]=1;
i+=n;
m;
if(buf[i]==0)
i);
11.
intmain(void)
inttemp,temp1;
for(i=1;
=n;
temp=i%10;
if(temp==5)
else
if(temp==0)
temp1=i;
while((temp1%10)==0)
temp1=temp1/10;
12.
intbuf[53];
inti,n;
53;
buf[i]=1;
for(n=2;
n++)
for(i=n;
i+=n)
buf[i]=1-buf[i];
if(count>
=104)
if(buf[i]==1)
13.
inta,b,c,d,e;
for(a=1;
a<
=5;
a++)
for(b=1;
b<
b++)
if(a!
=b)
for(c=1;
c<
c++)
if(c!
=a&
c!
for(d=1;
d<
d++)
if(d!
d!
=b&
=c)
e=15-a-b-c-d;
if(e!
e!
=c&
=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))
a=%d,b=%d,c=%d,d=%d,e=%d"
a,b,c,d,e);
14.
intbuf[3];
intmul;
inttemp;
for(i=10;
=31;
mul=i*i;
temp=mul;
buf[0]=temp%10;
temp=temp/10;
buf[1]=temp%10;
buf[2]=temp;
if((buf[0]==buf[1])||(buf[0]==buf[2])||(buf[1]==buf[2]))
%d^2=%d\n"
i,mul);
15.
inta,b,c;
=3;
c=6-a-b;
if((a!
=1)&
((c!
(c!
=3))==1)
a=%d,b=%d,c=%d"
a,b,c);
16.
k=(n%4==0)+(n%7==0)*2+(n%9==0)*4;
switch(k)
case7:
all"
case6:
7and9"
case5:
4and9"
case4:
9"
case3:
4and7"
case2:
7"
case1:
4"
case0:
none"
17.
inta,b,c,d;
pleasethinkofanumberbetween1and100.\n"
yournumberdividedby3hasaremainderof"
a);
yournumberdividedby4hasaremainderof"
yournumberdividedby7hasaremainderof"
c);
letmethinkamoment...\n"
d=36*c+28*a+21*b;
while(d>
84)
d=d-84;
yournumberwas%d\n"
d);
18.
intbuf[10];
inttemp1,temp2;
intbool;
for(i=5000;
=9999;
10;
buf[j]=0;
while(temp1>
0)
if((++buf[temp1%10])>
1)
temp1/=10;
continue;
mul=i*2;
temp2=mul;
while(temp2>
if((++buf[temp2%10])>
temp2/=10;
2*%d=%d\n"
19.
intppow(inta,intb)
intmul=1;
b;
mul=a*mul;
retur