编写一个程序,用给定的数字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)
答案 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)