1 条题解

  • 0
    @ 2025-4-12 21:43:14

    C :

    #include "stdio.h"
    #include "string.h"
    
    
    char m[1000], c[1000], k[1000];
    
    char change(char ch,int i)
    {
    	char number,x,a,b;
    	b = k[i];
    	if ((ch >= 'a') && (ch <= 'z'))
    	{
    		a = 'a';
    		if ((b >= 'A') && (b <= 'Z')) b = b - 'A' + 'a';
    	}
    	else a='A';
    
    
    	number = ch - a;
    	x = b - a;
    	if (number < x) number = number + 26;
    	number = number - x + a;
    	return (number);
    }
    
    void work()
    {
    	int lengthc, lengthk, i, j,tag;
    	lengthk = strlen(k);
    	lengthc = strlen(c);
    	tag = 0;
    	for (i = 0; i <= lengthc; i++)
    	{
    		m[i] = change(c[i], tag);
    		if (tag == lengthk-1) tag = 0;
    		else tag++;
    	}
    	m[lengthc] = '\0';
    	printf("%s\n", m);
    
    }
    
    void main()
    {
    
    	while (scanf("%s", &k) != EOF)
    	{
    		scanf("%s", &c);
    		work();
    	}
    
    }
    

    C++ :

    #include<stdio.h>
    #include<string.h>
    int main(){
    	char c[1001],k[101];
    	while(scanf("%s",k)!=EOF){
    		  int all;
    		  all=strlen(k);
    		  scanf("%s",c);
    		  int sum=0,t=0,ju=0;
    		  while(c[t]!=NULL){
    			  if(sum==all) sum=0;
    			  if(c[t]<97) 
    			  {ju=1;
    			   c[t]=c[t]+32;
    			  }//大写
    			  else ju=0;//小写
    			  for(int i=97;i<=122;i++){
    				  if(k[sum]<97) k[sum]=k[sum]+32;  
    				  if((i-97+k[sum]-97)%26+97==c[t]){
    					  if(ju==0) printf("%c",i);
    					  else printf("%c",i-32);
    				  }  
    			  }
    			  t++;
    			  sum++;
    		  }
    		  printf("\n");
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    1375
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者