首页 > 试题广场 >

挑7

[编程题]挑7
  • 热度指数:139616 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输出 1到n之间 的与 7 有关数字的个数。
一个数与7有关是指这个数是 7 的倍数,或者是包含 7 的数字(如 17 ,27 ,37 ... 70 ,71 ,72 ,73...)

数据范围:

输入描述:

一个正整数 n 。( n 不大于 30000 )



输出描述:

一个整数,表示1到n之间的与7有关的数字个数。

示例1

输入

20

输出

3

说明

输入20,1到20之间有关的数字包括7,14,17共3个。 
这题有没有时间复杂度低于O(n)的方法,分别统计7的倍数和含7的数字后再去重,像遇到7x、7xx、7xxx这样的数字感觉不好去重
发表于 2023-10-23 16:18:09 回复(0)
n=int(input())
list=[]
for i in range(1,n+1):
    if "7" in str(i) or i%7==0:list.append(i)
print(len(list))

发表于 2023-05-10 17:58:15 回复(0)
n = int(input())
list1 = []
for i in range(1, n+1):
    if i % 7 == 0 or "7" in str(i):
        list1.append(i)
print(len(list1))
发表于 2023-01-04 15:03:38 回复(0)
num = int(input())
i=0
for k in range(1,num+1):
    st = str(k)
    if k%7 == 0&nbs***bsp;'7' in st:
        i += 1
print(i)

发表于 2022-09-05 18:05:42 回复(0)
num = int(input())
count = 0
for i in range(2,num+1):
    if '7' in str(i) or i % 7 == 0:
        count += 1
print(count)
发表于 2022-08-30 07:35:32 回复(0)
while True:
    try:
        n = int(input())
        count = 0
        for i in range(1,n+1):
            if i % 7 == 0:
                count += 1
            else:
                for s in set(str(i)):
                    if int(s) == 7:
                        count += 1
        print(count)
    except:
        break
发表于 2022-08-28 17:19:22 回复(0)
# so easy!
x = int(input())
a = 0
for i in range(1,x+1):
    if (i%7==0) or ("7" in str(i)):
        a+=1
print(a)
发表于 2022-08-27 17:27:57 回复(0)
a = int(input())
count = 0
for i in range(1,a+1):
    if not i % 7 or "7" in str(i):
        count += 1
print(count)
发表于 2022-08-27 00:56:46 回复(0)
n = int(input())

cond = lambda n: str(n).find('7') != -1&nbs***bsp;n % 7 == 0 

solve = lambda n: sum(
                      map( cond,range(1,n+1)))
    
print(solve(n))
经典的map_reduce结构
发表于 2022-08-23 19:43:04 回复(0)
while True:
    try:
        n=int(input())
        l=[]
        k='7'
        for i in range(1,n+1):
            if i % 7 == 0:
                l.append(i)
            elif k in str(i):
                l.append(i)
        print(len(l))
    except:
        break
发表于 2022-08-14 18:17:10 回复(0)
python3 喝酒游戏
while True:
    try:
        number = int(input())
        output = 0
        for i in range(number):
            temp = i + 1
            if "7" in str(temp)&nbs***bsp;temp%7 == 0:
                output += 1
        print(output)
    except:
        break


发表于 2022-07-18 16:50:15 回复(0)
a = int(input())
count = 0
for i in range(1, a+1):
    if i % 7 == 0&nbs***bsp;'7' in str(i):
        count += 1
print(count)

发表于 2022-07-12 23:36:33 回复(0)
n=int(input())
a=[]
b=[]
for i in range(1,n+1):
    if i%7==0:
        a.append(i)
    elif '7' in str(i):
        b.append(i)
s=set(a+b)
print(len(s))
发表于 2022-07-12 22:23:41 回复(0)
num = int(input())
res = 0
for i in range(1, num+1):
    # 题意
    if i % 7 == 0&nbs***bsp;'7' in str(i):
        res += 1
    else:
        pass
print(res)

发表于 2022-07-05 17:46:16 回复(1)