在 n 中找到 c 多少次
How many times is c found in n
n = int(input("Input n: "))
c = int(input("Input c: "))
def it_show(n, c):
counter= 0
for i in range(1, n+1):
if i < 10:
if i == c:
counter+= 1
if i > 9:
digit = i % 10
if digit == c:
counter+= 1
i //= 10
return counter
print(it_show(n, c))
对不起,我的英语一开始就不太好。
在任务中强调使用数字,而不是字符串。
我需要输入n,c.Program需要return输入1到n(含n)的个数,c显示up.Etc。 n=20 and c=5 return 是 2.Because 从 1 到 20,5 出现在数字 5 和 15 中,也就是 2 numbers.In 这种情况下的代码 works.But 如果我输入 n=14 和 c=1 return 是 2,但它需要蜜蜂 6 因为从 1 到 14(包括 14)有 6 个数字中有 c(1) (1, 10 , 11, 12, 13, 14).
n = int(input("Input n: "))
c = int(input("Input c: "))
def it_show(n, c):
sc = str(c)
counter= 0
for i in range(1, n+1):
if str(i).count(sc):
counter += 1
return counter
print(it_show(n, c))
像这样比较字符串会更容易理解并且(可能)更快。
如果将数字转换为字符串,然后从数字中计算 numbers
的个数会更容易:
n = int(input("Input n: "))
c = int(input("Input c: "))
def it_show(n, c):
counter= 0
c_str = str(c)
for i in range(1, n+1):
num_str = str(i)
if c_str in num_str: # if number c exists in number i
counter += 1
return counter
print(it_show(n, c))
输出
Input n: 14
Input c: 1
6
您可以检查一个数字是否是另一个数字的子串作为字符串。
n = 14
c = 1
def it_show(n, c):
counter=0
for i in range(1,n+1):
if str(c) in str(i):
counter+= 1
return counter
print(it_show(n, c))
[输出]
6
def it_show(n,c):
counter = 0
for i in range(1,n+1):
if str(c) in str(i):
counter +=1
return counter
您可以使用 while
循环数字。
def it_show(n, c):
counter = 0
for i in range(1, n+1):
while i > 0:
if i % 10 == c: # if the right digit is equal to c
counter += 1
break # counter increased, and no need to check the other digits
i //= 10 # integer division to eliminate the right digit, which was already checked
return counter
print(it_show(20,5))
print(it_show(14,1))
n = int(input("Input n: "))
c = int(input("Input c: "))
def it_show(n, c):
counter= 0
for i in range(1, n+1):
if i < 10:
if i == c:
counter+= 1
if i > 9:
digit = i % 10
if digit == c:
counter+= 1
i //= 10
return counter
print(it_show(n, c))
对不起,我的英语一开始就不太好。
在任务中强调使用数字,而不是字符串。
我需要输入n,c.Program需要return输入1到n(含n)的个数,c显示up.Etc。 n=20 and c=5 return 是 2.Because 从 1 到 20,5 出现在数字 5 和 15 中,也就是 2 numbers.In 这种情况下的代码 works.But 如果我输入 n=14 和 c=1 return 是 2,但它需要蜜蜂 6 因为从 1 到 14(包括 14)有 6 个数字中有 c(1) (1, 10 , 11, 12, 13, 14).
n = int(input("Input n: "))
c = int(input("Input c: "))
def it_show(n, c):
sc = str(c)
counter= 0
for i in range(1, n+1):
if str(i).count(sc):
counter += 1
return counter
print(it_show(n, c))
像这样比较字符串会更容易理解并且(可能)更快。
如果将数字转换为字符串,然后从数字中计算 numbers
的个数会更容易:
n = int(input("Input n: "))
c = int(input("Input c: "))
def it_show(n, c):
counter= 0
c_str = str(c)
for i in range(1, n+1):
num_str = str(i)
if c_str in num_str: # if number c exists in number i
counter += 1
return counter
print(it_show(n, c))
输出
Input n: 14
Input c: 1
6
您可以检查一个数字是否是另一个数字的子串作为字符串。
n = 14
c = 1
def it_show(n, c):
counter=0
for i in range(1,n+1):
if str(c) in str(i):
counter+= 1
return counter
print(it_show(n, c))
[输出]
6
def it_show(n,c):
counter = 0
for i in range(1,n+1):
if str(c) in str(i):
counter +=1
return counter
您可以使用 while
循环数字。
def it_show(n, c):
counter = 0
for i in range(1, n+1):
while i > 0:
if i % 10 == c: # if the right digit is equal to c
counter += 1
break # counter increased, and no need to check the other digits
i //= 10 # integer division to eliminate the right digit, which was already checked
return counter
print(it_show(20,5))
print(it_show(14,1))