这是我在Java上的第二天。我在生日悖论上遇到了一个有趣的问题。
然而,我被困在如何创造一个房间'与'人''然后比较这些人生日。
有谁知道怎么做?
感谢您的努力和时间! :)
class Person {
int age;
}
class Room {
int Person;
}
public class BirthdayParadox {
public static void main(String[] args) {
int x = (int) (Math.random() * 364);
int y = (int) (Math.random() * 364);
long r = Math.round(x);
long s = Math.round(y);
Person person1 = new Person();
person1.age = (int) r;
Person person2 = new Person();
person2.age = (int) s;
if (person1.age == person2.age) {
System.out.println("Same!");
}
else if (person1.age != person2.age) {
System.out.println(person1.age + " " + person2.age);
}
}
}
答案 0 :(得分:2)
您的Room
类应该包含List<Person>
或Person数组(Person [])。
Person
的构造函数应接受dateOfBirth
参数,或者,为了使其更简单,您可以接受1到365之间的整数,表示生日的日期,不包括这一年,因为你所关心的一切。不要给该成员age
打电话,因为它与年龄无关。
您想使用(int)(Math.random() * 365) + 1
,它会为您提供1到365之间的整数。您不需要使用Math.round()
。
答案 1 :(得分:-1)
为此,您只需要array个整数,每个索引都保存一个人的生日。
例如,要保存10个人的生日,您将创建一个大小为10的整数数组。
int[] birthdays = new int[10];
您可以使用以下内容为数组的索引赋值:
birthdays[2] = (int)(Math.random() * 364);
以上代码会将第3个人的生日分配给随机值。
要获得某人的生日,请使用类似的代码:
birthdays[1]
所以,要打印第5个人的生日,你会使用
System.out.println(birthdays[4]);
请记住,数组是0索引的,这意味着第一个值是0而最后一个是(size - 1)。因此,例如,第6个元素位于索引5处。