【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. AlexNet实现cifar10数据集分类

    import tensorflow as tf import os from matplotlib import pyplot as plt import tensorflow.keras.datas ...

  2. vs2015创建项目没法选择.net2.0的问题

    今天要修护一个net2.0开发的程序bug,只修改了一行代码,发布到测试系统,结果程序奔溃了,吓出一身汗. 因为是直接崩溃,所以第一个想到的就是.net版本错了.一查看,果实是,项目属性里目标框架是4 ...

  3. 基于Celery在多台云服务器上实现分布式

    起源 最近参加公司里的一个比赛,比赛内容里有一项是尽量使用分布式实现项目.因为项目最终会跑在jetsonnano,一个贼卡的开发板,性能及其垃圾.而且要求使用python? 找了很多博客,讲的真的是模 ...

  4. cometoj(A-D+F+H)代码

    A #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> ...

  5. Java通过http协议发送Get和Post请求

    https://blog.csdn.net/qq_32599479/article/details/94439131

  6. python应用 处理excel数据

    实现功能 excel表格中有4列数,分别为RMF计算得到的 β,γ,势能面及组态,需要挑选出相同 β 值下势能面最低时的组态.为了减小数据量,先将 β 值保留两位小数. 代码 import xlrd ...

  7. TomcatAJP文件包含漏洞

    漏洞概述 2020年2月20日,国家信息安全漏洞共享平台(CNVD)发布关于Apache Tomcat的安全公告,Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2 ...

  8. Solr专题(二)详解Solr查询参数

    一.前言 上节我们讲到了怎样去搭建solr服务,作为全文检索引擎,怎样去使用也是比较关键的.Solr有一套自己的查询方式,所以我们需要另外花时间去学习它的这套模式. 启动solr solr start ...

  9. CTF-WeChall-第四天上午

    2020.09.12 08:24 哈哈,go on!

  10. 详解usbmon抓取的log各字段的含义

    详解 usbmon 抓取的 log 各字段的含义 在上篇文章中,我们已经介绍了如何在 linux 下使用 usbmon 抓取 usb 总线上数据的方法.(https://www.cnblogs.com ...