為了修正輸入k值很小很小的問題我想了好久,之後直接用計算機找出26的n次方加上去 >__<
但更好的方法是甚麼呢?
程式碼:
#include <iostream>
#include <string>
using namespace std;
int main() {
long long int k;
string plaintext;
while (getline(cin, plaintext))
{
cin >> k;
cin.ignore();
for (int i = 0; i < plaintext.size(); i++)
{
if ('a' <= plaintext[i] && plaintext[i] <= 'z')
{
plaintext[i] = (plaintext[i] - 'a' + k + 208827064576) % 26 + 'a';
}
else if (plaintext[i] != ' ')
plaintext[i] += 'a';
}
cout << plaintext << endl;
}
return 0;
}
沒有留言:
張貼留言