ฉันมีจำนวนเต็ม N. ฉันต้องไปหามากขึ้นเลขที่เล็กที่สุดกว่าไม่มีข้อความที่ไม่ประกอบด้วยหลักอื่น ๆ ที่ไม่ใช่ 0 หรือ 1 ตัวอย่างเช่นหากแล้วคำตอบคือN = 12
100
ฉันเขียนรหัสวิธีบังคับเดรัจฉานใน C ++
int main() {
long long n;
cin >> n;
for (long long i = n + 1; ; i++) {
long long temp = i;
bool ok = true;
while (temp != 0) {
if ( (temp % 10) != 0 && (temp % 10) != 1) {
ok = false;
break;
}
temp /= 10;
}
if (ok == true) {
cout << i << endl;
break;
}
}
}
ปัญหาคือวิธีการของฉันช้าเกินไป ฉันเชื่อว่ามีวิธีที่มีประสิทธิภาพมากในการแก้ปัญหานี้ ฉันจะแก้ปัญหานี้อย่างมีประสิทธิภาพได้อย่างไร
N
อนุญาตให้ติดลบหรือไม่ นอกจากนี้ยังเป็นเรื่องยากเนื่องจากคุณมีความเสี่ยงที่จะได้รับข้อมูลมากเกินไป ขอบเขตมีN
อะไรบ้าง?