gpt4 book ai didi

java - 某个范围内的数字中的每个数字都应能被 n 整除

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

这里我需要检查数字中的每个数字,因为范围应该被3整除,这意味着当我输入20和40时,代码需要验证20到40之间数字的每个数字,并且它应该显示 30,33,36,39

我试图做的是获取代码的最后一位数字并检查它是否可整除,我陷入了困境

class Main
{
public static void main(String[] args) {
System.out.println("Enter the range for shipment numbers :");
int n;
int Duplicate = 0;
int count = 0;

Scanner sc = new Scanner(System.in);
int range1 = sc.nextInt();
int range2 = sc.nextInt();

for(int i = range1; i <= range2; i++){
int num = i;
int length = String.valueOf(i).length();
Duplicate = 0;

for(int j = 1; j <= length; j++)
{
n = num % 10;
num = num / 10;

if(n % 3 == 0 && i % 3 == 0 ){
Duplicate = Duplicate+1;
count = count+1;

System.out.println(rep);
if (Duplicate <= 1)
System.out.println(i);
}
}

if (count <= 0)
System.out.println("Shipment numbers unavailable");
if (count <= 0)
break;
}
}
}

最佳答案

为了检查每个数字是否能被 3 整除,您可以用以下代码替换循环。它只是从右到左计算数字,并使用逻辑 AND 使用 boolean 值来记住到目前为止遇到的所有数字是否都能被 3 整除。

    for (int i = range1; i <= range2; i++) {
int num = i;
boolean isDivisible = true;

while (num > 0) {
// get last (rightmost) digit to inspect
int n = num % 10;

isDivisible = isDivisible && (n % 3 == 0);
// integer-divide by 10 to prepare for next round
num = num / 10;
}

if (isDivisible) {
System.out.println(i);
}
}

所示代码的一个弱点是,就像您的原始代码一样,它会查看整个数字,一旦不满足可被 3 整除的标准,它就会立即退出,但这很容易修复。

关于java - 某个范围内的数字中的每个数字都应能被 n 整除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50682465/

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