PAT 乙級 1048 數字加密 20 C 版

2022-03-21 20:02:22 字數 1625 閱讀 5648

時間限制

400 ms

記憶體限制

65536 kb

**長度限制

8000 b

判題程式

standard

作者chen, yue

本題要求實現一種數字加密方法。首先固定乙個加密用正整數a,對任一正整數b,將其每1位數字與a的對應位置上的數字進行以下運算:對奇數字,對應位的數字相加後對13取餘——這裡用j代表10、q代表11、k代表12;對偶數字,用b的數字減去a的數字,若結果為負數,則再加10。這裡令個位為第1位。

輸入格式:

輸入在一行中依次給出a和b,均為不超過100位的正整數,其間以空格分隔。

輸出格式:

在一行中輸出加密後的結果。

輸入樣例:

1234567 368782971
輸出樣例:
3695q8118

思路:先將短的字串頭部新增字元0,知道兩個字串相等長度為止,只是為了後續操作更加簡便,再將兩個字串分別以字元的形式讀入對應的字元棧,此時兩個棧的長size一定相同

,用棧的乙個好處就是因為個位是最後一位,棧先進後出,正好滿足,然後將處理後的結果存入乙個新的棧,該棧也是為了從高位開始輸出,**如下,**行數可以更少,但是我寫的方式是為了讓main函式更加簡潔

1

: 定義控制台應用程式的入口點。2//

34 #include "

stdafx.h

"5 #include6 #include7 #include

8 #include9

10using

namespace

std;

1112

//函式宣告

13void show_result(stack& s1, stack&s2);

14void push(stack& s, string

str);

15void put_zero(stack& s1, stack& s2, const

string& str1, const

string&str2);

1617

intmain()

1836

37//

將長度小的字串對應的棧先填入字元0

38void put_zero(stack& s1, stack& s2, const

string& str1, const

string&str2)

3947

else

4852}53

54//

將字串入棧

55void push(stack& s, string

str)

5663

64//

程式實現

65void show_result(stack& s1, stack&s2)66;

7172

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

7386

87while (!s.empty())//

處理後的棧輸出

8893

94 cout <95 }

PAT乙級 1048 數字加密 20

題目 本題要求實現一種數字加密方法。首先固定乙個加密用正整數a,對任一正整數b,將其每1位數字與a的對應位置上的數字進行以下運算 對奇數字,對應位的數字相加後對13取餘 這裡用j代表10 q代表11 k代表12 對偶數字,用b的數字減去a的數字,若結果為負數,則再加10。這裡令個位為第1位。輸入格式...

PAT 乙級 1048 數字加密 20

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 本題要求實現一種數字加密方法。首先固定乙個加密用正整數a,對任一正整數b,將其每1位數字與a的對應位置上的數字進行以下運算 對奇數字,對應位的數字相加後對13取餘 這裡用...

PAT乙級 1048 數字加密 20

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 本題要求實現一種數字加密方法。首先固定乙個加密用正整數a,對任一正整數b,將其每1位數字與a的對應位置上的數字進行以下運算 對奇數字,對應位的數字相加後對13取餘 這裡用...