ตามคำถามจำนวนเต็มบวก <1,000,000 ประกอบด้วย 2 หลัก . ฉันกำลังมองหาทางออกที่สร้างสรรค์มากที่สุดจะนับทุกจำนวนเต็มจากX
การที่มีจำนวนเต็ม Y
สามารถจาก 0 ถึงZ
Z
Y
จำนวนเต็มที่พบทุกคนจะนับเพียงครั้งเดียวแม้ว่าจำนวนเต็มZ
จะปรากฏบ่อยขึ้น ตัวอย่างเช่น:
Z = 2
123 counts 1
22222 also counts 1
ฉันจะเริ่มต้นด้วยอัลกอริทึมที่เรียบง่ายจริงๆเขียนใน Java (เพราะทุกคนเป็นที่รัก):
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);
}
}
ถ้าคุณทำสิ่งนี้ด้วย
java -jar Count.jar 0 1000000 2
คุณได้รับสิ่งนี้เป็นผล:
468559
เพราะปัญหานี้ไม่ยากที่จะแก้มันเป็นเพียงความนิยมประกวด คำตอบที่โหวตมากที่สุดโพสต์โดย 28 กุมภาพันธ์ชนะ!
N
สามารถเป็นได้123
และมันจะจับคู่ก็ต่อเมื่อมีสตริงย่อย 123 อยู่หรือไม่