首页 > 试题广场 >

挑7

[编程题]挑7
  • 热度指数:138957 时间限制: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个。 
import sys

for line in sys.stdin:
    try:
        i = 0
        num = int(line)
        for j in range(1, num+1):
            if j % 7 == 0 or '7' in str(j):
                i += 1
        print(i)
    except:
        pass

编辑于 2021-04-28 20:49:19 回复(0)
while True:
    try:
        N = int(input())
        count = 0
        for i in range(1, N+1):
            if ('7' in str(i)) or (i % 7 == 0):
                count += 1
        print(count)
    except:
        break
发表于 2021-04-05 14:42:03 回复(0)
while True:
    try:
        n = int(input())
        count = 0
        i = 1
        while i <= n:
            if str(i).count('7') > 0 or i % 7 == 0:
                count += 1
            i += 1
        print(count)
    except EOFError:
        break

编辑于 2021-03-26 17:23:16 回复(0)
import sys


for n in sys.stdin:
    n = int(n)
    count = 0
    for i in range(7, n+1):
        if "7" in str(i)&nbs***bsp;i%7==0:
            count += 1
    print(count)

发表于 2020-12-17 17:34:04 回复(0)
while True:
    try:
        num = int(input().strip())
        if 0 < num <= 30000:
            count_7 = 0
            for i in range(7,num+1):
                if i % 7 == 0&nbs***bsp;'7' in str(i):
                    count_7 += 1
            print(count_7)
    except:
        break


编辑于 2020-12-06 12:19:08 回复(0)
while True:
    try:
        n, res = int(input()), 0
        for i in range(1, n+1):
            if i%7 == 0:
                res += 1
            elif str(i).count("7") != 0:
                res += 1
        print(res)
    except:
        break

发表于 2020-09-01 19:16:46 回复(0)
while True:
    try:
        n = int(input())
        count = 0
        for i in range(7,n + 1):
            if i % 7 == 0&nbs***bsp;'7' in str(i):
                count +=1
        print(count)
    except:
        break

发表于 2020-08-30 12:23:25 回复(0)
Python只需一行关键代码:
while True:
    try:
        print(sum(list(map(lambda x:1 if x%7==0&nbs***bsp;x%10==7&nbs***bsp;x//10%10==7&nbs***bsp;x//100%10==7&nbs***bsp;x//1000%10==7 else 0,range(1,int(input())+1)))))
    except:
        break



编辑于 2020-05-07 18:32:58 回复(0)
#!/usr/bin/env python

while 1:
    try:
        count = 0
        m = 0
        a = set()
        num = int(raw_input())
        for i in range(1, num + 1):
            if i % 7 == 0:
                a.add(i)
            for part in str(i):
                len_part = len(part)
                for j in range(len_part):
                    if '7' == part[j]:
                        a.add(i)

        print len(a)
    except:
        break
可以分2块:
1. 各个数位上有7的;
2. 可以被7整除的;
考虑到两者可能有重复的,可以采用集合的性质来去除重复的。
发表于 2020-04-05 10:28:00 回复(0)
while True:
  try:
    a,b,c = int(input()),[],[]
    for i in range(7,a+1):
      if i%7 == 0:
        b.append(i)
      elif str(i).count("7"):
        b.append(i)
    c = list(set(b))
    print(len(c))
  except:
    break

发表于 2020-02-20 21:56:18 回复(0)
while True:
    try:
        N = int(input())
        count = 0
        for i in range(7, N+1):
            if i%7==0&nbs***bsp;str(i).count('7'):
                count+=1
        print(count)
    except:
        break

发表于 2020-02-19 00:39:36 回复(1)
while True:
    try:
        n = int(input())

        count = 0
        for i in range(1, n+1):
            if i % 7 == 0:
                count = count + 1
            elif '7' in str(i):
                count = count + 1

        print(count)
    except:
        break

发表于 2019-10-20 22:18:33 回复(0)
while True:
    try:
        
        N = eval(input())
        if N<7:
            print(0)
        else:
            counts = 0
            for i in range(7,N+1):
                if '7' in str(i):
                    counts += 1
                elif i%7 == 0:
                    counts += 1
            print(counts)
    except:
        break


发表于 2019-07-07 19:25:26 回复(0)
while True:
    try:
        n=int(input().strip())
        num=0
        for i in range(1,n+1):
            str_i=list(str(i))
            if '7'in str_i or i%7==0:
                #print(i)
                num+=1
        print(num)

    except:
        break
发表于 2019-06-20 08:55:41 回复(0)
/*两种情况,判断一下就可以了……*/
def get7(n):
    count = 0
    for i in range(1,n+1):
        if i % 7 == 0 or '7' in str(i):
            count += 1
    return count

while True:
    try:
        n = int(input())
        print(get7(n))
    except:
        break

发表于 2018-08-29 21:44:31 回复(0)

python solution:

while True:
    try:

        a,res=int(input()),0
        for i in range(7,a+1):
            if "7" in str(i) or i%7==0:
                res+=1
        print(res)


    except:
        break
发表于 2017-10-04 15:20:35 回复(7)