本題要求實現一種數字加密方法。首先固定乙個加密用正整數 a,對任一正整數 b,將其每 1 位數字與 a 的對應位置上的數字進行以下運算:對奇數字,對應位的數字相加後對 13 取餘——這裡用 j 代表 10、q 代表 11、k 代表 12;對偶數字,用 b 的數字減去 a 的數字,若結果為負數,則再加 10。這裡令個位為第 1 位。
輸入格式:
輸入在一行中依次給出 a 和 b,均為不超過 100 位的正整數,其間以空格分隔。
輸出格式:
在一行中輸出加密後的結果。
輸入樣例:
1234567 368782971
輸出樣例:
3695q8118
分析:字串處理
這個題是乙個很好的字串處理的題,只要能運用好字串的函式,解題很簡單。
除此之外:如果兩字串的長度不一樣,那麼要在兩字串逆轉之後,在短的字串末尾加補0補齊。
#include
#include
#include
using
namespace std;
intmain()
; string s1, s2, final, tmp, str;
cin >> s1 >> s2;
reverse
(s1.
begin()
, s1.
end())
;reverse
(s2.
begin()
, s2.
end())
;if(s1.
size()
< s2.
size()
) s1 +
=string
(s2.
size()
- s1.
size()
,'0');
else s2 +
=string
(s1.
size()
- s2.
size()
,'0');
for(
int i =
0; i < s1.
size()
; i++
) final.
insert(0
, tmp);}
cout
}
1048 數字加密(20 分)
本題要求實現一種數字加密方法。首先固定乙個加密用正整數 a,對任一正整數 b,將其每 1 位數字與 a 的對應位置上的數字進行以下運算 對奇數字,對應位的數字相加後對 13 取餘 這裡用 j 代表 10 q 代表 11 k 代表 12 對偶數字,用 b 的數字減去 a 的數字,若結果為負數,則再加 ...
1048 數字加密(20 分)
1048 數字加密 20 分 本題要求實現一種數字加密方法。首先固定乙個加密用正整數 a,對任一正整數 b,將其每 1 位數字與 a 的對應位置上的數字進行以下運算 對奇數字,對應位的數字相加後對 13 取餘 這裡用 j 代表 10 q 代表 11 k 代表 12 對偶數字,用 b 的數字減去 a ...
1048 數字加密 (20 分)
1048 數字加密 20 分 本題要求實現一種數字加密方法。首先固定乙個加密用正整數 a,對任一正整數 b,將其每 1 位數字與 a 的對應位置上的數字進行以下運算 對奇數字,對應位的數字相加後對 13 取餘 這裡用 j 代表 10 q 代表 11 k 代表 12 對偶數字,用 b 的數字減去 a ...