123

发布时间 2023-06-29 14:06:00作者: paopo

第一题我稍微给你改了改,

第三题很简单,就是枚举i,check(i)返回i是不是我要的那个数,比较方法就是一直%10(取个位),然后/10,比如25和5,%10都是5

第二题自己看着改一改,思路就是枚举两个串的首个相同位置 i 和 j ,比较i+k和j+k,k一直加

自己稍微改一改,祝顺利!!

t1:

#include<stdio.h>
#include<string.h>
char a[105],b[105],S[500];
void solve()
{
int len1=strlen(a);
int len2=strlen(b);
int i=0;
int x=0,y=0;
while(x<len1 && y<len2)
{
if(a[x]<=b[y]) S[i++]=a[x++];
else S[i++]=b[y++];
}
while(x<len1) S[i++]=a[x++];
while(y<len2) S[i++]=b[y++];
}
int main()
{
scanf("%s%s",a,b);
solve();
printf("%s\n",S);
return 0;
}

 

 

 

 

t2:

#include<stdio.h>
#include<string.h>
#define maxn 105
char x[maxn],y[maxn],z[maxn];
int ans;
void solve()
{
int len1=strlen(x+1);
int len2=strlen(y+1);
int i,j,k;
for(i=1;i<=len1;i++)
{
for(j=1;j<=len2;j++)
{
int k=0;
while(x[i+k]==y[j+k] && i+k<=len1 && j+k<=len2) k++;
if(ans<k)
{
ans=k;
int p;
for(p=1;p<=k;p++) z[p]=x[i+p-1];
}
}
}
if(ans==0) printf("No Answer\n");
else printf("%s\n",z+1);
}
int main()
{
scanf("%s",x+1);
scanf("%s",y+1);
solve();
}

 

t3:

#include<stdio.h>
#include<string.h>
#define maxn 105
int A,B;
int check(int x)
{
int y=x*x;
while(x && y)
{
if( (x%10) != (y%10) ) return 0;
x/=10;
y/=10;
}
return 1;
}
int main()
{
int i;
scanf("%d%d",&A,&B);
for(i=A;i<=B;i++)
{
if(check(i)) printf("%d\n",i);
}
return 0;
}