作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用于练习的加密算法,但我不确定自己的编码是否正确。我在加密方法中遇到了麻烦。
我的算法如下(我引用):“用(该数字的总和加 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/
我是一名优秀的程序员,十分优秀!