gpt4 book ai didi

C 中数字的凯撒密码

转载 作者:行者123 更新时间:2023-12-04 10:36:10 26 4
gpt4 key购买 nike

我想做一个Caesar cipher对于数字。 (所有数字加3)

输入:52 输出:85

输入:954 输出:287

输入:-10457 输出:-43780

如果有人帮助我,我会很高兴。

我试过这个,但是当我输入小于 5 位的数字时,它会输出 3 到开头。

当我输入 52 时,它输出 33385。我还想询问用户程序是应该接受一个新数字还是直接退出。

#include <stdio.h>
#include <stdlib.h>

int main()
{

int number, operation;

printf("Enter the number: ");
scanf("%d", &number);

printf("%d", ((number / 10000) + 3) % 10);
printf("%d", (((number % 10000) / 1000) + 3) % 10);
printf("%d", (((number % 1000) / 100) + 3) % 10);
printf("%d", (((number % 100) / 10) + 3) % 10);
printf("%d\n", ((number % 10) + 3) % 10);

printf("press 1 to continue or 2 for exit.");
scanf("%d", &operation);

switch (operation) {
case 1:
printf("Enter the number: ");
scanf("%d", &number);

printf("%d", ((number / 10000) + 3) % 10);
printf("%d", (((number % 10000) / 1000) + 3) % 10);
printf("%d", (((number % 1000) / 100) + 3) % 10);
printf("%d", (((number % 100) / 10) + 3) % 10);
printf("%d\n", ((number % 10) + 3) % 10);

break;

case 2:

break;
}

return 0;
}

最佳答案

当您输入 52 时,您的 number 变量取值 00052,它将与您的代码一起转换为 33385。如果您不想要前导 3,您可以不打印它们,或者先检索数字并计算仅当数字不为 0 时,其关联的凯撒数字。

考虑任何 int 数字(无论 digit 的数量)的另一种可能性是:

#include "stdio.h"
#include <stdlib.h>

int main()
{
int number, abs_number;
int caesar_number = 0;
int digit_pos = 1;

printf("Enter the number: ");
scanf("%d", &number);

abs_number = abs(number);

while (abs_number != 0)
{
caesar_number += (((abs_number % 10) + 3) % 10) * digit_pos;
abs_number /= 10;
digit_pos *= 10;
}

if (number < 0)
{
caesar_number = -caesar_number;
}
printf("Result is: %d\n", caesar_number);

return 0;
}

关于C 中数字的凯撒密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59235038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com