PTA 1048 數字加密 20 分

2021-09-29 16:06:17 字數 2677 閱讀 5218

#include

#include

#include

using

namespace std;

intmain()

else

if(sum ==

10) final +

='j'

;else

if(sum ==

11) final +

='q'

;else

if(sum ==

12) final +

='k'

;else final +

=(sum +

'0');}

if(a.

length()

> b.

length()

) final +

= a.

substr

(b.length()

);else final +

= b.

substr

(a.length()

);reverse

(final.

begin()

, final.

end())

;for

(int i =

0; i < final.

size()

; i++

) cout << final[i]

;return0;

}

bug在於:對於奇數字沒有影響;對於偶數字,如果b.lengh()>a.lengh()那麼也沒有影響。

但是**如果a.length()>b.length()**那麼本來應該是負數m,應該再進行+10處理,結果是m+10。現在卻是m,所以有四分的測試點過不了。

#include

#include

#include

using

namespace std;

intmain()

else

if(sum ==

10) final +

='j'

;else

if(sum ==

11) final +

='q'

;else

if(sum ==

12) final +

='k'

;else final +

=(sum +

'0');}

if(a.

length()

> b.

length()

) final +

= a.

substr

(b.length()

);else final +

= b.

substr

(a.length()

);reverse

(final.

begin()

, final.

end())

;for

(int i =

0; i < final.

size()

; i++

) cout << final[i]

;return0;

}

採用harsh雜湊

#include

#include

#include

using

namespace std;

intmain()

; string a, b,final;

cin >> a >> b;

reverse

(a.begin()

, a.

end())

;reverse

(b.begin()

, b.

end())

;if(a.length()

> b.

length()

) b.

(a.length()

- b.

length()

,'0');

else a.

(b.length()

- a.

length()

,'0');

for(

int i =

1; i <= a.

length()

&&i <= b.

length()

; i++

)else

final +

= str[sum];}

if(a.

length()

> b.

length()

) final +

= a.

substr

(b.length()

);else final +

= b.

substr

(a.length()

);reverse

(final.

begin()

, final.

end())

;for

(int i =

0; i < final.

size()

; i++

) cout << final[i]

;return0;

}

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 ...