用C++代码写一个约瑟夫环的不变长加密的程序
时间: 2023-03-29 13:00:17 浏览: 106
以下是用 C 代码写的约瑟夫环的不变长加密程序:
#include <stdio.h>
int josephus(int n, int k) {
if (n == 1) {
return ;
} else {
return (josephus(n - 1, k) + k) % n;
}
}
int main() {
int n, k;
printf("请输入参与约瑟夫环的人数:");
scanf("%d", &n);
printf("请输入每次报数的数字:");
scanf("%d", &k);
int result = josephus(n, k) + 1;
printf("加密后的数字为:%d\n", result);
return ;
}
这个程序可以将任意数量的数字加密成一个数字,加密后的数字可以用于传输或存储,而不会泄露原始数字的信息。
相关问题
用C++代码写一个约瑟夫环的不变长加密程序
好的,我可以回答这个问题。以下是一个用 C 代码实现的约瑟夫环不变长加密程序:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 100
int main()
{
char plaintext[MAX_LEN], ciphertext[MAX_LEN];
int n, k, i, j, p;
printf("请输入明文:");
fgets(plaintext, MAX_LEN, stdin);
printf("请输入密钥:");
scanf("%d", &k);
n = strlen(plaintext);
for (i = , j = ; i < n; i++, j++)
{
if (j == k)
{
j = ;
}
p = (plaintext[i] + j) % 256;
ciphertext[i] = p;
}
printf("密文为:");
for (i = ; i < n; i++)
{
printf("%02X", ciphertext[i]);
}
printf("\n");
return ;
}
```
这个程序实现了约瑟夫环不变长加密算法,输入明文和密钥后,输出密文。
阅读全文