Câu hỏi này thực sự đã xuất hiện trong một trong những bài kiểm tra của học sinh của tôi. Ở đây, chúng tôi được yêu cầu viết một hàm
def contains_1[n]:0 nếu không. Thông thường, chúng ta có thể làm điều này trong 1 dòng
if n>=10 and n=10 and n 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False
def contains_1[n]:
return "1" in str[n]
Cuộc đuổi bắt
Phiên bản đơn giản trong đó 1 ≤ n ≤ 100Chúng tôi không được phép sử dụng chuỗi trong chức năng của mình
Trong câu hỏi mà sinh viên của tôi đã đưa ra, số nguyên đầu vào được giới hạn trong phạm vi từ 1 đến 100. Chúng ta có thể đơn giản giả định rằng số đó nằm trong khoảng từ 1 đến 100 [bao gồm cả], điều này khiến mọi thứ trở nên đơn giản hơn nhiều
Lực lượng vũ phu
def contains_1[n]:
numbers_with_1 = [1,10,11,12,13,14,15,16,17,18,19,
21,31,41,51,61,71,81,91,100]
return n in numbers_with_1
Cho rằng các số chỉ nằm trong khoảng từ 1 đến 100, thực sự khả thi khi thực hiện phương pháp vũ phu và liệt kê thủ công từng số có chứa chữ số 1, sau đó kiểm tra xem số đầu vào của chúng ta có thuộc bên trong không
Sử dụng câu lệnh if-else
def contains_1[n]:1 thành số dương [chúng tôi không muốn giải quyết các số âm ở đây]
if n>=10 and n 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False
def contains_1[n]:2 là 1, chúng tôi biết chắc chắn rằng số
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False
def contains_1[n]:1 của chúng tôi chứa chữ số 1, vì vậy chúng tôi trả về
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False
def contains_1[n]:2 không phải là 1, chúng ta tiếp tục cuộc sống và chia
if n>=10 and n 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False
def contains_1[n]:1 cho 10 [chia tầng]
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False
def contains_1[n]:1 bằng 0
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False
def contains_1[n]:0 ở cuối nếu chúng tôi không gặp bất kỳ chữ số 1 nào
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False
Giải mã
def contains_1[n]:
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False
Chạy nhanh trong đó n = 12345
def contains_1[n]:
6 là 5 → số cuối cùng không phải là 1
numbers_with_1 = [1,10,11,12,13,14,15,16,17,18,19,
21,31,41,51,61,71,81,91,100]
return n in numbers_with_1- Bây giờ chúng ta chỉ cần kiểm tra
def contains_1[n]:
7, vì chúng ta biết chắc chắn rằng số cuối cùng không phải là 1 [nó là 5]
numbers_with_1 = [1,10,11,12,13,14,15,16,17,18,19,
21,31,41,51,61,71,81,91,100]
return n in numbers_with_1 def contains_1[n]:
8 →
numbers_with_1 = [1,10,11,12,13,14,15,16,17,18,19,
21,31,41,51,61,71,81,91,100]
return n in numbers_with_1def contains_1[n]:
1 bây giờ sẽ là 1234
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return Falsedef contains_1[n]:
1 bây giờ sẽ là 123
if n>=10 and n=10 and n 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False- Lặp lại điều này cho đến khi
def contains_1[n]:
1 bây giờ là
if n>=10 and n=10 and n=10 and n=10 and n=10 and n 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return Falsedef contains_1[n]:
2 là 7 → số cuối cùng không phải là 1 → kiểm tra
if n>=10 and n 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return Falsedef contains_1[n]:
3
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False def contains_1[n]:
8 →
numbers_with_1 = [1,10,11,12,13,14,15,16,17,18,19,
21,31,41,51,61,71,81,91,100]
return n in numbers_with_1def contains_1[n]:
1 bây giờ là
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return Falsedef contains_1[n]:
3
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return Falsedef contains_1[n]:
7 là 8 → số cuối cùng không phải là 1 → kiểm tra
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return Falsedef contains_1[n]:
8
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return Falsedef contains_1[n]:
8 →
numbers_with_1 = [1,10,11,12,13,14,15,16,17,18,19,
21,31,41,51,61,71,81,91,100]
return n in numbers_with_1def contains_1[n]:
1 bây giờ là
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return Falsedef contains_1[n]:
8
n = abs[n]
while n > 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return Falsedef contains_1[n]:
1 bây giờ là
if n>=10 and n 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return Falsedef contains_1[n]:
0
if n>=10 and n 0:
remainder = n % 10
n = n // 10 if remainder == 1:
return True return False
Một số mã thử nghiệm
def contains_1[n]:
if n>=10 and n