题目链接:点击打开链接
模拟水题。
代码:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int k;
int fi(char c){
if(c=='_')
return 0;
if(c=='.')
return 27;
return (int)(c-'a'+1);
}
char fc(int i){
if(i==0)return '_';
if(i==27)return '.';
return (char)(i+'a'-1);
}
int p[80];
char c[80];
int len;
void solve(char c,int i){
int n=fi(c);
n=(i+n)%28;
p[k*i%len]=n;
}
int main()
{
scanf("%d",&k);
while(k){
scanf("%s",c);
len=strlen(c);
for(int i=0;i<len;i++){
solve(c[i],i);
}
for(int i=0;i<len;i++){
printf("%c",fc(p[i]));
}
printf("\n");
scanf("%d",&k);
}
return 0;
}
本文介绍了一个简单的模拟编码转换算法,该算法通过特定的字符映射实现字符串的转换。代码使用C++编写,包括字符到整数的映射及逆过程,并通过循环实现了字符串的逐字符处理。
3980

被折叠的 条评论
为什么被折叠?



