2

シーザー暗号を解読することになっています。関数を宣言してcrack : int * int -> int、が(k, c)復号化されたテキストと暗号化されたテキストである場合、 を呼び出すために必要なキー (mod 10) が返されるようにする必要があります。たとえば、呼び出すと 4 が返されます。intkccrack(k, c)nckcrack(20458790, 64892134)

cが正しくエンコードされていない場合k、関数は実際に機能する必要はありません。

ここで十分に明確であることを願っています。ここでの実際の割り当ては理解していますが (k と c があり、n が必要です)、コードでそれを表示する方法がわかりません。

4

1 に答える 1

1

2 番目の数値が最初の数値のシーザー エンコーディングでない場合にどうするかを指定していないので、問題ではないと仮定します。

したがって、取得するには、最初の数字から任意の数字 (最も便利なのは最後の数字) を取り、それを 2 番目の数字の同じ位置にある数字から引くだけです。

つまり、次のことができます。 (c mod 10 - k mod 10) mod 10

于 2010-09-19T10:33:33.247 に答える