【Python练习题 013】 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入。

这题倒也不难,实际上 a+aa+aaa+aa...a 可以转化为 (a * 10**0) + (a * 10**1) + (a * 10**2)…… 进而转化为 a * (10**0 + 10**1 + 10**2 ……),所以用两个 for 循环就搞定了。

注意:第1个 for 循环,range()得从1开始计数,这样子第2个 for 循环一开始才能至少循环一次(如果 i = 0,那么 range(i) 就循环不起来了。

代码如下:

a = int(input('请输入数字 a:'))
count = int(input('请输入几个数相加:')) res = 0 #初始化最终求解
for i in range(1, count+1): #循环次数与输入的值一样,但从1开始循环
t = 0 #临时用的变量
for j in range(i):
t = t + 10**j #先计算 10**0 + 10**1 + ... + 10**j
res = res + (a*t) #再计算 a * t
print(res)

输出结果如下:

请输入数字 a:5
请输入几个数相加:4
6170

【2016-10-17 更新】---------------------------------------------------------------

感谢 Mr很大的龙 的指教,提供了更简洁、更妙的方法。先看代码感受一下:

a=input('输入数字>>>')
count=int(input('几个数字相加>>>'))
ret=[]
for i in range(1,count+1):
ret.append(int(a*i))
print(ret[i-1])
print(sum(ret))

我研究了半天死活没看懂,a*i 为啥就能这么简单地解决问题!如果 a = 2,那 a*i 不就是 2*1, 2*2, 2*3, 2*4... 了吗?后来才恍然大悟:input() 获得的输入是字符,不是数字!而用于字符的乘法表示重复,不是数值运算!!即是说,字符 a 乘 2 的结果是 aa,字符 '2' 乘 2 的结果是 '22'!之后运算前把 '22' 转换为数字 22 就可以了。真是太妙了!

++++++++++++++++++++++++++++++++++++++

题目出处:编程语言入门经典100例【Python版】

Python练习题 013:求解a+aa+aaa……的更多相关文章

  1. python基础练习题(题目 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制)

    day11 --------------------------------------------------------------- 实例018:复读机相加 题目 求s=a+aa+aaa+aaa ...

  2. Python练习题 026:求100以内的素数

    [Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...

  3. Python练习题 032:Project Euler 004:最大的回文积

    本题来自 Project Euler 第4题:https://projecteuler.net/problem=4 # Project Euler: Problem 4: Largest palind ...

  4. Python练习题 017:三支乒乓球队出赛名单

    [Python练习题 017] 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比.请编程序找 ...

  5. Python练习题 014:完数

    [Python练习题 014] 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. -------------------- ...

  6. 【程序18】求s=a+aa+aaa+aaaa+aa...a的值

    求s=a+aa+aaa+aaaa+aa-a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制. 知识点:在Python 3里,reduce( ...

  7. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

    package com.lw.HomeWork1;//包名 2 import java.util.Scanner; public class Demo18 { /** * @param args */ ...

  8. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

    import java.util.Scanner; /** * 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字. * 2+22+222+2222+22222(此时共有5个数 ...

  9. 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

    一.第一种写法 package com.pb.demo1; import java.util.Scanner; /** * 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字. ...

随机推荐

  1. 拿捏了!ConcurrentHashMap!

    概述 本文将对JDK8中 ConcurrentHashMap 源码进行一定程度的解读.解读主要分为六个部分:主要属性与相关内部类介绍.构造函数.put过程.扩容过程.size过程.get过程.与JDK ...

  2. 华师2019软件专硕复试机试题最后一题G:找数

    G. 找数 单点时限: 1.0 sec 内存限制: 256 MB 问题描述 输入一个整数 n( 2≤n≤10 ) ,你需要找到一些 n 位数(允许有前置 0 ,见样例),这些 n 位数均 由 0 ~ ...

  3. 不要再问我 in,exists 走不走索引了

    微信搜『烟雨星空』,获取最新好文. 前言 最近,有一个业务需求,给我一份数据 A ,把它在数据库 B 中存在,而又比 A 多出的部分算出来.由于数据比较杂乱,我这里简化模型. 然后就会发现,我去,这不 ...

  4. Spring Cloud系列(一):微服务架构简介

    一.微服务概述 1.微服务是什么 微服务架构的核心就是服务的拆分,把传统的单体式应用,根据一定的维度(比如业务)拆分为一个一个的服务,每一个服务都有自身特定的功能,又都能够独立的部署,甚至可以拥有自己 ...

  5. Linux下命令设置别名--alias(同实用于mac)

    最近在搞appium自动化脚本编写,过程中经常会使用 uiautomatorviewer这个工具查看UI布局和元素,但是不得不说这个单词太长了.. 如何快速使用,有三个小技巧,分别是: 1.设置好改工 ...

  6. OC基础--字符串

    前言 做iOS开发有3年了,从当初的小白到现在,断断续续看过很多资料,之前也写过一些博文来记录,但是感觉知识点都比较凌乱.所以最近准备抽时间把iOS开发的相关知识进行一个梳理,主要分为OC基础.UI控 ...

  7. JSON<前后端的沟通>

    1.什么是JSON ==>1什么是json json:是一种轻量级数据交互格式 数据交互:每一种语言的编码都不一样,他们之间互不认识.但是现在的情况是不同的语言开发出的系统也需要进行数据交互,这 ...

  8. 2.AVFormatContext和AVInputFormat

    参考https://blog.csdn.net/leixiaohua1020/article/details/14214705 AVFormatContext: 用来存储视音频封装格式(flv,mp4 ...

  9. VUE常用问题hack修改

    vue-router router这里踩的坑主要是组件的重用.构建单页面大型应用的话,肯定要开启组件的缓存的,因为一般会要求后退的时候不要重新加载页面,而且要记住原始的滚动位置.首先,引入router ...

  10. Java 后端开发常用的 10 种第三方服务

    请肆无忌惮地点赞吧,微信搜索[沉默王二]关注这个在九朝古都洛阳苟且偷生的程序员.本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题. 严格意义上 ...