如何编写以给定数字作为n值计算n + nn + nnn + nnnn + ... nn ... n n次的python程序

时间:2019-10-19 03:29:37

标签: python

编写一个程序,用给定的数字n作为n值,计算n + nn + nnn + nnnn + ... nn ... n次。 例如:如果n = 3,输出= 3 + 33 + 333 = 369,如果n = 1输出= 1

我的代码不适用于输入n = 1 你能帮忙吗

a = int(input("Input an integer : "))
n1 = int( "%s" % a )
n2 = int( "%s%s" % (a,a) )
n3 = int( "%s%s%s" % (a,a,a) )
print (n1+n2+n3)

7 个答案:

答案 0 :(得分:2)

您的代码始终会添加您输入3次的字符串的重复版本。您需要使用循环。

n = input('n: ')
s = 0
for i in range(1, int(n) + 1):
    s += int(n * i) # n is a string, multiplying with int results in replication

print(s)

答案 1 :(得分:1)

由于3 + 33 + 333 = 369可以重新解释为3 x 3 + 2 x 30 + 1 x 300 = 369,因此您可以创建这样的数学函数:

def f(n):
    return sum(10 ** i * (n - i) * n for i in range(n))

这样:

for n in range(6):
    print(f(n))

输出:

0
1
24
369
4936
61725

答案 2 :(得分:0)

让我更正您的代码

a = int(input("Input an integer : "))
p = 0
for i in range(1, a+1):
 p += int(str(a)*i)
print(p)

答案 3 :(得分:0)

number = int(input())
sum_ = 0
for i in range(1, number + 1):
    sum_ += int(str(number) * i)
print(sum_)

答案 4 :(得分:0)

这是我的代码,将对此起作用:

num = int(input('Enter in a value: '))
total = 0

for i in range(0, num):
    total += int(str(num) + i*str(num))

当然,这是用户首先输入一个数字的方式。我保留了一个称为“总计”的运行总计变量。在我的for循环中,我将从0循环到num。之所以选择0,是因为我不希望第一次迭代具有多个str(num)。在第一次迭代中,i = 0,有效地将str(num)与其相乘,只剩下一个str(num),然后通过执行int(str(num))将其转换为int数据类型。

第二个迭代i = 1,它看起来像这样:

total += int(str(num) + 1*str(num))

,应将其解释为(如果用户输入3并且在第二次迭代中):

3 += int(str(3) + 2*str(3))

这时的总数等于36,然后在其第三次也是最后一次迭代中,总数将变为369。希望可以澄清我的代码。

答案 5 :(得分:0)

您可以尝试以下方法:

#接受输入

n = input()

#开始在此处编写代码

ck = 0

对于范围(1,int(n)+1)中的i: ck = ck + int(i * n)

打印(ck)

答案 6 :(得分:0)

怎么样:

n=input()

#start writing your code form here
answer=0

for i in range(1,n+1):
    num=''
    for j in range(i):
        num=num+str(n)
    num=int(num)
    answer=answer+num

print(answer)