1317.txt
来自「北大ACM题目例程 详细的解答过程 程序实现 算法分析」· 文本 代码 · 共 46 行
TXT
46 行
#include <stdio.h>
#include <string.h>
inline int convert(char c)
{
if( c == '_' ) return 0;
if( c == '.' ) return 27;
return c-'a'+1;
}
inline char convert(int s)
{
if( s == 0 ) return '_';
if( s == 27) return '.';
return 'a'+s-1;
}
int main()
{
int i, k, n;
char ciphertext[100],plaintext[100];
int ciphercode[100],plaincode[100];
while(1)
{
scanf("%d",&k);
if( k == 0 ) break;
scanf("%s",ciphertext);
n = strlen( ciphertext );
for( i=0; i<n; i++ )
ciphercode[i] = convert( ciphertext[i] );
for( i=0; i<n; i++ )
plaincode[(k*i)%n] = ( ciphercode[i]+i ) % 28;
for( i=0; i<n; i++ )
plaintext[i] = convert( plaincode[i] );
plaintext[i] = '\0';
printf("%s\n",plaintext);
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?