huavhuahua 2020-04-15
给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++?+aa?a(n个a)之和。
输入在一行中给出不超过9的正整数a和n。
在一行中按照“s = 对应的和”的格式输出。
代码如下:
#!/usr/bin/python # -*- coding: utf-8 -*- a,n=map(int,input().split()) #print("s = {:d}".format(sum([int(str(a)*i) for i in range(1,n+1)]))) sum = 0 for i in range(1,n+1): sum = sum +int(str(a)*i) print("s =",sum)
注释的那一行是百度CSDN一位大佬写的。刚开始看到题目,看了半天发现这个规律用普通的算数很难做到,于是请教了下百度。
前面说过,format()函数是将字符串格式化,{:d}是进行十进制转换,其实不转换也可以,大佬比较严谨,
print("s =",sum([int(str(a)*i) for i in range(1,n+1)]))
说下这个程序,简单来说就是将数值a转换为字符然后*i进行扩充,在转换为数值进行计算。
测试如下:字符*数值,就是几个字符堆在一起。
读书和健身总有一个在路上