首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >N以下包含数字7的所有数字的总和

N以下包含数字7的所有数字的总和
EN

Stack Overflow用户
提问于 2019-11-03 02:44:17
回答 2查看 324关注 0票数 1

你能帮我找出我代码中的问题吗?练习是;编写一个程序,输入1-1000范围内的数字N,并打印N以下包含数字7的所有数字的总和。如果用户插入一个超出范围的数字,并要求再次插入,则打印一条错误消息。

代码语言:javascript
复制
var = 1
while var == 1:
    n=int(input("Enter the Number in range [1,1000]:"))
    while n in range(0,1001):
        k = 0
        i=0
        m=0
        s=0
        e=0
        f=0
        g=0
        if n in range(100,1001):
            for c in range(100,n+1):
                if c%10 == 7:
                    i += c
                if (c//10)%10 == 7:
                    c%10 != 7
                    s += c
                if c//100 == 7:
                    (c//10)%10 != 7
                    c%10 != 7
                    e += c
            print(1188 + i + s + e)
        if n in range(0,100):
            for b in range(1,n+1):
                if b%10 == 7:
                    f += b
                if b//10 == 7:
                    g += b
            if b >= 77:
               g=g-77
            print(f+g)
        break
    else:
        print("n is not in the range")       

它通过总是加上170来计算范围(170,180)中的和,而不仅仅是在这个范围内。

EN

回答 2

Stack Overflow用户

发布于 2019-11-03 03:03:08

while块中,我们正在测试n是否有效。在while块之后,有一个列表理解。

代码语言:javascript
复制
contains_seven = [x for x in range(0,n+1) if '7' in str(x)]

我们将取值范围为0到n+1中包含'7‘的每个数字。之后,我们通过sum()函数对它们求和并打印出来。完整的实施是:

代码语言:javascript
复制
while True:
    n = int(input("input n: "))
    if (n>0 and n<=1000):
        break    
    print("n is not in the range")

contains_seven = [x for x in range(0,n+1) if '7' in str(x)]
a = sum(contains_seven)
print(a)
票数 3
EN

Stack Overflow用户

发布于 2019-11-03 02:53:17

我们可以先将数字转换为str(),然后再转换为list()。在那之后,例如,我们从456获取['4', '5', '6']。现在我们可以很容易地检查7是否在我们的数字中。利润!

然后我们在sum()中获取包含7到*args的数字列表,并得到最终结果!啊呼呼!嗯

代码语言:javascript
复制
N = int(input("Write number: "))

while (N < 1) or (N > 1000):
    N = int(input("Write number again: "))

all_numbers_with_seven = [n for n in range(1, N) if '7' in list(str(n))]

print(sum(all_numbers_with_seven))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58674191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档