java - 在Java中查找区间之间的偶数但排除随机数的倍数
问题描述
我最近开始学习 Java,并且有几个练习要练习。一直在努力解决这个问题:我必须获得 2 个随机数,A 和 B,并且必须打印 1 和 B 之间的所有偶数。我设法完成了这部分,但接下来的问题是:如果找到2A ,程序必须中断并显示以下消息:“找到 2A 的倍数”。我所能做的就是打印 1 和 B 之间的每个偶数,并排除 2 A 的每个倍数,如下所示:
import java.util.Random;
public class JavaExercise {
public static void main(String[] args) {
Random random = new Random();
int A = random.nextInt(9) + 1;
int B = random.nextInt(99) + 1;
for (int i = 1; i <= B; ++i) {
if ((i % 2 == 0) && (i % (2*A) != 0))
System.out.println (i);
else
break;
}
}
}
但是我需要程序在找到 2*A 的倍数时中断,并显示上面的消息。尝试这样做,但得到了一个非常糟糕的输出,显示消息多次而不是一次,:
for (int i = 1; i <= B; ++i) {
if (i % 2 == 0)
System.out.println (i);
if (i % (2*A) == 0)
break;
System.out.println("Multiple of 2A found");
}
有人能帮我找出我哪里出错了吗?我会很感激的!
解决方案
您的行顺序错误。
for (int i = 2; i <= B; i+=2) {
if( i % (2*A) == 0 )
{
System.out.println( "Multiple of 2A found." );
break;
}
System.out.println (i);
}
推荐阅读
- sms - 同时使用 SMS 和 Internet 的问题 W Telit UL865 NAD
- python - 不断收到错误“输入包含 NaN、无穷大或对于 dtype('float32') 来说太大的值。”
- bevy - 如何在bevy中获取子实体的绝对位置?
- elasticsearch - 嵌套字段上的 Elasticsearch 复合聚合查询
- azure-active-directory - Azure AD B2C 会话超时无效
- pandas - 熊猫与 numpy 不兼容
- visual-studio - Ctrl+Shift+右箭头在 Visual Studio 2019 中不起作用
- spring - 使用 Spring 在非 Web 应用程序中使用 ElasticSearch 客户端
- foreach - 使用 ForEach 时,在 SwiftUI 中选择时是否可以更改 tabItem 的图像?
- apache-flink - Flink 中的检查点随时间增加