java - 计算数组java的偶数,奇数和完美数?
问题描述
问题:编写一个 Number 类,可用于确定一个数是奇数、偶数还是完美数。然后,使用这个 Number 类来确定列表中有多少个数字是奇数、偶数和完美数。
号码类:
public class Number
{
private Integer number;
public Number(int n)
{
number=n;
}
public boolean isEven()
{
if(number % 2 == 0)
return true;
else
return false;
}
public boolean isOdd()
{
if(number % 2 != 0)
return true;
else
return false;
}
public boolean isPerfect()
{
int count = 0;
for(int i = 1; i<number; i++)
{
if(number % i == 0)
count += i;
}
if(number == count)
{
return true;
}
else
return false;
}
public String toString()
{
return "" +number;
}
}
我的数字课程运行良好,我的数字课程没有问题。但是在我的数字分析器类中,我找到了奇数、偶数和完美数。
数字分析器类:
public class NumberAnalyzer
{
private ArrayList<Number> list;
public NumberAnalyzer(int l)
{
list=l;
}
public int countOdds()
{
int odd = 0;
for(int i=0; i<list.size(); i++)
{
if(list.isOdd() == true)
return odd++;
}
}
public int countEvens()
{
int even = 0;
for(int x = 0; x<list.size(); x++)
{
if(list.isEven() == true)
return even++;
}
}
public int countPerfects()
{
int perfect = 0;
for(int z = 0; z<list.size(); z++)
{
if(list.isPerfect() == true)
return perfect++;
}
}
public String toString()
{
return "" + list;
}
}
请对此课程进行更正,以便我的程序完美运行。我不明白这个问题,请对此进行更改,以便程序完美运行。 节目主持人:
import static java.lang.System.*;
public class Runner
{
public static void main( String args[] )
{
int[] r = {5, 12, 9, 6, 1, 4, 8, 6 };
NumberAnalyzer test = new NumberAnalyzer(r);
out.println(test);
out.println("odd count = "+test.countOdds());
out.println("even count = "+test.countEvens());
out.println("perfect count = "+test.countPerfects()+"\n\n\n");
}
}
此 Runner 的正确答案:
[5, 12, 9, 6, 1, 4, 8, 6]
odd count = 3
even count = 5
perfect count = 2
谢谢
解决方案
如果它甚至没有编译但没关系,我不明白它是如何工作的。您需要更改 2 个类:NumberAnalyzer 和 Runner。请看一看:
public class Runner {
public static void main(String args[]) {
Number[] r = {new Number(5), new Number(12), new Number(9), new Number(6),
new Number(1), new Number(4), new Number(8), new Number(6)};
NumberAnalyzer test = new NumberAnalyzer(r);
out.println(test);
out.println("odd count = " + test.countOdds());
out.println("even count = " + test.countEvens());
out.println("perfect count = " + test.countPerfects() + "\n\n\n");
}
}
和
import java.util.Arrays;
import java.util.List;
public class NumberAnalyzer {
private List<Number> list;
public NumberAnalyzer(Number[] l) {
list = Arrays.asList(l);
}
public int countOdds() {
int odd = 0;
for (Number value : list) {
if (value.isOdd() == true) {
odd++;
}
}
return odd;
}
public int countEvens() {
int even = 0;
for (Number value : list) {
if (value.isEven() == true) {
even++;
}
}
return even;
}
public int countPerfects() {
int perfect = 0;
for (Number value : list) {
if (value.isPerfect() == true) {
perfect++;
}
}
return perfect;
}
public String toString() {
return "" + list;
}
}
在这种情况下,它会返回正确的输出。
推荐阅读
- symfony4 - 如何更改 Symfony 4 maker bundle 的根命名空间?
- javascript - 如何使用正则表达式从数据中检索数字?
- unity3d - 除非我在 Unity 中加载新场景并重新加载旧场景,否则我的输入字段会消失并且不起作用
- javascript - 无法理解二叉树 DFS 的递归部分
- typescript - 还有另一个“对象可能是'未定义'”,但它真的不可能
- asp.net - 添加 .Net Standard 2.0 包后的 ASP.Net MVC ASPNETCOMPILER 问题
- javascript - Slick Slide slickAdd 返回 false
- azure-devops - 在 DevOps 中枚举 Projects 时,有没有办法确定项目中是否存在 Pipeline?
- html - 如何删除网站横幅周围的空白?
- sql-server - 本机查询支持 SQL Server 的 Spring 数据 jpa 流