日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java程序a-z b-y_有一行电文,以按下面规律译成密码: A---Z a---z B---Y b---Y C---X c---x …… 即第1个字母编程第26个字...

發布時間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java程序a-z b-y_有一行电文,以按下面规律译成密码: A---Z a---z B---Y b---Y C---X c---x …… 即第1个字母编程第26个字... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有一行電文,以按下面規律譯成密碼:

A--->Z a--->z

B--->Y b--->Y

C--->X c--->x

……

即第1個字母編程第26個字母,第i個字母編程第(26-i+1)個字母,非字母字符不變,要求編程序將密碼譯回原文,并輸出密碼和原文。

【答案解析】

從題目給的實例中可以看到,編碼規則非常簡單,就是將從前往后數的第i個字母轉化為從后往前數的第i個字母。

那解壓時直接反過來轉換即可:

即'Z'--->'A' 'z'--->'a'

? 'Y'--->'B' 'y'--->'b'

? 'X'--->'C' 'x'--->'c'

假設如果當前拿到的是小寫字母,轉換方式如下:

先用s[i] - 'a'計算出s[i]是26個字母中從前往后數的第幾個

再用26 - (s[i]- 'a') - 1 轉換為26個字母中從后往前數的第幾個

在2的結果上加上'a',即轉換為對應從后往前的第幾個字母

大寫字母轉換方式與上述相同,將上述每條中的'a'換為‘A’即可。

【代碼實現】

#include

int main()

{

char s[1024] = {0};

scanf("%s", s);

int len = strlen(s);

// 轉換

for (int i = 0; i < len; ++i)

{

// 如果是小寫字母(大寫字母出來類似):

// 1. 先用s[i] - 'a'計算出s[i]是26個字母中從前往后數的第幾個

// 2. 再用26 - (s[i]- 'a') - 1 轉換為26個字母中從后往前數的第幾個

// 3. 在2的結果上加上'a',即轉換為對應從后往前的第幾個字母

if (s[i] >= 'a' && s[i] <= 'z')

s[i] = 'a' + 26 - (s[i]-'a')-1;

else if (s[i] >= 'A' && s[i] <= 'Z')

s[i] = 'A' + 26 - (s[i] - 'A')-1;

}

printf("%s", s);

return 0;

}

【結果截屏】

總結

以上是生活随笔為你收集整理的java程序a-z b-y_有一行电文,以按下面规律译成密码: A---Z a---z B---Y b---Y C---X c---x …… 即第1个字母编程第26个字...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。