nyoj770仿射密码

题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=770


ps:这种密码题思路都差不多一致,只是加密公式有点不同


Code:

#include<stdio.h>
#include <string.h>

char str[50],ch[50];

void mapping(int k1,int k2)
{
    int i;
    for(i=0;i<26;i++)
        ch[(k1*i+k2)%26]=i+'A';

}

int main()
{
    int k1,k2,i;
    while(scanf("%s%d%d",str,&k1,&k2)!=EOF)
    {
        mapping(k1,k2);
        for(i=0;i<strlen(str);i++)
            str[i]=ch[str[i]-'A'];
        printf("%s\n",str);
    }
    return 0;
}

你可能感兴趣的:(nyoj770仿射密码)