gpt4 book ai didi

java - 初学者 Java 逻辑错误 : Not sure I know what to do for this algorithm

转载 作者:行者123 更新时间:2023-11-30 11:19:25 26 4
gpt4 key购买 nike

我有一个用于练习的加密算法,但我不确定自己的编码是否正确。我在加密方法中遇到了麻烦。

我的算法如下(我引用):“用(该数字的总和加 7)除以 10 后的余数替换每个数字。”

编辑:1234 应该变成 8901

我该怎么办?我走在正确的轨道上吗?

import java.util.*;
public class encrypt
{
public static void main(String[] args)
{
int num;
num = getnum();
encrypt(num);
}
public static int getnum()
{
Scanner console = new Scanner(System.in);
int num;
do
{
System.out.println("Enter a number that has only four digits ");
num = console.nextInt();
}
while (num < 1000 || num > 9999);
return num;
}
public static int encrypt(int num)
{
int digit4 = num%10;
num = num/10;
int digit3 = num%10;
num = num/10;
int digit2 = num%10;
num = num/10;
int digit1 = num%10;
num = num/10;
digit4 = ((digit4 + 7)/10)%10;
digit3 = ((digit3 + 7)/10);
digit2 = ((digit2 + 7)/10);
digit1 = ((digit1 + 7)/10);
System.out.print(digit1+" "+digit2+" "+digit3+" "+digit4);
return digit4;
}
}

最佳答案

在所有情况下,digit+7 都在 7 到 16 之间,因此要得到余数,如果数字为 10 或更多,则减去 10,即

if (digit4 >= 10) digit4 -= 10;
if (digit3 >= 10) digit3 -= 10;
if (digit2 >= 10) digit2 -= 10;
if (digit1 >= 10) digit1 -= 10;

你会想回来

digit1 * 1000 + digit2 * 100 + digit3 * 10 + digit4

而不仅仅是 digit4。除此之外,使用 for 循环进行改进,使其适用于大于 9999 的数字。

关于java - 初学者 Java 逻辑错误 : Not sure I know what to do for this algorithm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23234847/

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