Dựa vào câu hỏi Có bao nhiêu số nguyên dương <1.000.000 chứa chữ số 2? . Tôi đang tìm giải pháp sáng tạo nhất để đếm tất cả các Số nguyên từ X
để Y
chứa Số nguyên Z
. Z
có thể từ 0 đến Y
.
Mỗi số nguyên tìm thấy chỉ được tính một lần, ngay cả khi số nguyên Z
xuất hiện thường xuyên hơn. Ví dụ:
Z = 2
123 counts 1
22222 also counts 1
Tôi sẽ bắt đầu với một thuật toán thực sự đơn giản được viết bằng Java (bởi vì nó được mọi người yêu thích):
public class Count {
public static void main(String[] args) {
int count = 0;
for (int i = Integer.parseInt(args[0]); i <= Integer.parseInt(args[1]); i++) {
if (Integer.toString(i).contains(args[2])) {
count++;
}
}
System.out.println(count);
}
}
nếu bạn chạy cái này với
java -jar Count.jar 0 1000000 2
bạn nhận được điều này là kết quả:
468559
Bởi vì vấn đề này không khó để giải quyết nó chỉ là một cuộc thi phổ biến . Câu trả lời được đánh giá cao nhất được đăng vào ngày 28 tháng 2!
N
có thể 123
và nó sẽ chỉ phù hợp nếu chuỗi con 123 tồn tại?