為了修正輸入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; }
沒有留言:
張貼留言