Python练习题2.4特殊a串数列求和

给定两个均不超过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进行扩充,在转换为数值进行计算。

测试如下:字符*数值,就是几个字符堆在一起。


读书和健身总有一个在路上

原文地址:https://www.cnblogs.com/Renqy/p/12708193.html

时间: 2024-08-30 14:44:43

Python练习题2.4特殊a串数列求和的相关文章

Python练习题 041:Project Euler 013:求和、取前10位数值

本题来自 Project Euler 第13题:https://projecteuler.net/problem=13 # Project Euler: Problem 13: Large sum # Work out the first ten digits of the sum of the following one-hundred 50-digit numbers. # Answer: 5537376230 numbers = '''371072875339021027987979982

习题4-4 特殊a串数列求和(20 分)

给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++?+aa?a(n个a)之和. 输入格式: 输入在一行中给出不超过9的正整数a和n. 输出格式: 在一行中按照"s = 对应的和"的格式输出. 输入样例: 2 3 输出样例: s = 246 #include <stdio.h> int main() { int i,a,n,sum=0,t=0; scanf("%d %d", &a, &n); for(i=1;i<=n

Python练习题8(替换相同的字符串并输出):输入两个字母串,将两个字母串都包含的字母用&#39;_&#39;替换后,输出两个字母串的剩余部分 (不能为空串,区别大小写,只能包含字母)

方法一:检查输入是否为空串,循环字母串,相同的则替换,然后再用replace()方法去除,输出想要的结果 1 def str_replace(messages1,messages2): 2 if messages1.strip() == '' or messages2.strip() == '' : #检验输入不能为空串 3 tips = "输入字母串有空串,不合法" 4 return tips 5 6 if not messages1.encode('UTF-8').strip().

十三道Python练习题

一.完美立方 编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),使得a^3= b^3 + c^3 + d^3,其中a,b,c,d 大于 1, 小于等于N. 输入一个正整数N (N≤100),输出 每行输出一个完美立方.输出格式为: Cube = a, Triple = (b,c,d) 其中a,b,c,d所在位置分别用实际求出四元组值代入. 请按照a的值,从小到大依次输出.当两个完美立方 等式中a的值相同,则b值小的优先输出,仍相同则c值小的优先输出,再相同

Python练习题 024:求位数及逆序打印

[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- 这题如果不用递归,实在太简单了!!!代码上: str = input('请输入一个不多于5位的正整数:') print('这个数字是%s位数,逆序为%s.' % (len(str), str[::-1])) 输出结果如下: 请输入一个不多于5位的正整数:45931这个数字是5位数,逆序为13954

python练习题:循环打印嵌套列表

好久没写博文了,添加一个练习题,选自<head_first_python>~~ python列表:以中括号开始和结束"[]":列表项以逗号","分隔开,使用赋值操作符"="赋予一个标识符.如: movies=["the holy",1975,"terry jones",91,["graham",["michael","john",&qu

Python练习题 028:求3*3矩阵对角线数字之和

[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得代码太啰嗦.矩阵这东西,应该有个很现成的方法可以直接计算才对-- 啰嗦代码如下: str = input('请输入9个数字,用空格隔开,以形成3*3矩阵:') n = [int(i) for i in str.split(' ')] #获取9个数字 mx = [] #存储矩阵 for i in ra

Python练习题 027:对10个数字进行排序

[Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获取输入的10个数字,然后用 lst.sort() 就完成排序了.代码如下: s = input('请输入10个数字,以空格隔开:') n = [int(x) for x in s.split(' ')] n.sort() print(n) 输出结果如下: 请输入10个数字,以空格隔开:3 23 4

Python练习题 023:比后面的人大2岁

[Python练习题 023] 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后 问第一个人,他说是10岁.请问第五个人多大? ----------------------------------------------------- 这题真是--用心算就能算出来好吗?好吧,应该又是要训练递归函数,最近这几题总是跟递归纠缠不清.不过,似乎慢慢理解了递归函数的写法了.本题代码如下: