4, 8, 15, 16, 23, 42
Viết chương trình xuất ra dãy số này vô hạn. Tuy nhiên, Số không được xuất hiện trong mã nguồn của bạn ở bất cứ đâu.
Dưới đây không phải là chương trình Java hợp lệ để xuất Số vì Số xuất hiện trong mã nguồn của nó:
class TheNumbers {
public static void main(String[] args) {
for(int n = 0;;) System.out.println(
n == 4 ? n = 8 :
n == 8 ? n = 15 :
n == 15 ? n = 16 :
n == 16 ? n = 23 :
n == 23 ? n = 42 : (n = 4)
);
}
}
Định nghĩa của "Các số không được xuất hiện trong mã nguồn của bạn" như sau:
- Bạn không được sử dụng số 4.
- Bạn không được sử dụng số 8.
- Bạn không được sử dụng chữ số 1 theo sau là chữ số 5.
- Bạn không được sử dụng chữ số 1 theo sau là chữ số 6.
- Bạn không được sử dụng chữ số 2 theo sau là chữ số 3.
Nếu ngôn ngữ của bạn bỏ qua các ký tự nhất định có thể được đặt giữa các chữ số, thì đó không phải là sự thay thế hợp lệ. Vì vậy, ví dụ nếu ngôn ngữ của bạn diễn giải theo nghĩa đen 1_5
như 15
, điều này sẽ được tính là chữ số 1 theo sau là chữ số 5.
Các cơ sở thay thế được bao gồm trong hạn chế, vì vậy, ví dụ:
- Nhị phân 100 không thể được sử dụng thay thế cho 4.
- Octal 10 không thể được sử dụng thay thế cho 8.
- Hệ thập lục phân F không thể được sử dụng thay thế cho 15.
Do đó, sau đây là một chương trình Java hợp lệ (nhưng không được truyền cảm hứng) để xuất các Số vì các Số không xuất hiện trong mã nguồn của nó:
class TheNumbers {
public static void main(String[] args) {
for(int n = '*';;) {
System.out.println(n -= '&');
System.out.println(n *= 2);
System.out.println(n += 7);
System.out.println(++n);
System.out.println(n += 7);
System.out.println(n += 19);
}
}
}
Lưu ý rằng trong chương trình đó, '*'
và '&'
được thay thế cho các số nguyên 42 và 38, vì nếu không, các chữ số 4 và 8 sẽ xuất hiện trong mã nguồn của nó.
Định nghĩa của "đầu ra chuỗi vô tận" là mở để giải thích. Vì vậy, ví dụ, một chương trình tạo ra glyphs trở nên nhỏ hơn cho đến khi chúng "nhỏ" vô hạn sẽ có hiệu lực.
Kudos nếu bạn có thể tạo chuỗi theo cách nào đó về cơ bản không phải là mã hóa cứng mỗi số.
- Xuất phát nó thành một công thức. Ấn tượng của tôi là không có một nhưng có thể có hoặc nó có thể bị làm giả.
- Sửa một trình tạo giả ngẫu nhiên để trả về chuỗi.
Đây là một cuộc thi phổ biến, vì vậy hãy sáng tạo. Câu trả lời có nhiều phiếu bầu nhất vào ngày 26 tháng 3 là người chiến thắng.
This isn't an interesting question, IMHO, since the solution is pretty trivial. Please post in the sandbox next time.
sẽ là cách tốt hơn This is a stupid question.
, nhưng đó chỉ là ý kiến cá nhân của tôi.