求s = a + aa + aaa +aaaa +……a的值
求 s=a + aa + aaa + aaaa + aa … a 的值。
例如:输入相加的数字为 3,相加的次数为 4,那么就等于 3+33+333+3333 = 3702;
输入相加的数字为 5,相加的次数为 3,那么就等于 5+55+555 = 615。
样例输入:
请输入所要相加的数字:3
请输入相加的次数:4
样例输出:
结果:3702
方法1
通过观察可以发现后一位数字就是前一位nextnum*10+nextnum得到的,那我们就可以直接写代码了
num = int(input("请输入所要相加的数字:"))
n = int(input("请输入相加的次数:"))
#定义一个变量用来存储当前数字:(上一个数字)*10+上一个数字
backnum = 0
#定义一个变量用来存储相加的和
result = 0
#创建一个循环,循环次数为需要相加的次数
for i in range(n):#每一次循环都会利用(上一个数字)*10+上一个数字公式,算出当前数字backnum = backnum*10+num#把当前数字累加到结果中result+=backnum
#输出结果
print(result)
我们来看一下这个程序时如何执行的:
直接进入到循环中,以需要累加的数字为3,累加次数为4为例:
第一次循环:
backnum*10+num,backnum当前值为0,num值为3,0*10+3,将结果3赋值给左边的backnum,此时backnum值为3,result结果为0+3
第二次循环:
backnum*10+num,backnum当前值为3,num值为3,3*10+3,将结果33赋值给左边的backnum,此时backnum的值为33,result结果为3+33
第三次循环:
backnum*10+num,backnum当前值为33,num值为3,33*10+3,将结果333赋值给左边的backnum,此时backnum的值为333,result结果为36+333
第四次循环:
backnum*10+num,backnum当前值为333,num值为3,333*10+3,将结果3333赋值给左边的backnum,此时backnum的值为3333,result结果为369+3333
最后结果: 3702
方法二
第二种方法我运用了递归的方式,可能理解起来比较困难,我会将过程写的仔细一点,方便大家理解:
通过阅读题目我们可以发现,相加的次数是和相加的数存在着一种联系
结果 = n*1+n*11+n*111…n*11…1
而1出现的次数也相加的次数是有联系的,如果需要相加的次数是4次,那最后一个数n*1111,1111我们可以通过:10**4 + 10**3 + 10**2 + 10**1d得出,也可以导出公式为:10**n+10**(n-1)…+10**1,这样我们就可以先用递归直接把所需要乘多少个1求出来了
def one(n):#判断如果n为1时,直接返回if n == 1:return 1else:return 10**(n-1) + one(n-1)
#result = num * 1 + num * 11 + num * 111
#>>> result = num * one(n) + num * one(n-1) ... + num
def count(second,num):if second == 1:return numelse:return one(second)*num+count(second-1,num)
num = int(input("请输入所要相加的数字:"))
n = int(input("请输入相加的次数:"))
print(count(n,num))
方法三
方法三我用了比较取巧的方式,字符串的特性中相乘就是赋值字符串,aaaa>aaa>aa>a,我们就可以利用for循环来完成我们的目的
#因为我们需要用到字符串的特性所以就不需要将接收值转换为数字了
num = input("请输入所要相加的数字:")
n = int(input("请输入相加的次数:"))
#创建一个变量用来接收累加的值
result = 0
#循环的次数就是需要相加的次数
for j in range(n):#将字符串赋值的次数为n,n-1,n-2,n-3,所以直接将n = n-j,此处j是循环中的#变量会随着循环次数的增加而加1,将复制好的字符串转换为int类型进行累加result += int(num*(n-j))print(result)
这个就是我解决这个问题的三种方式,如果有问题还请评论区大佬留言,我会改正。文笔不佳请见谅。
求s = a + aa + aaa +aaaa +……a的值相关推荐
- 求 s=a+aa+ aaa+ aaaa +aaaaa+........的值,a是从键盘输入的,项数也为键盘输入
总结:这道题目.主要是那个位数,需要*10, while(i<f){ x+=y;//决定位数上的那个数 sum+=x//求和 y*10=y;//决定位数 } package com.b;impo ...
- a和a数值大小 计算机,Java求s=a+aa+aaa+aaaa+aa...a的值
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有 ...
- java a =a-=aa_Java求s=a+aa+aaa+aaaa+aa...a的值
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有 ...
- java求s a aa aaa_Java求s=a+aa+aaa+aaaa+aa...a的值
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有 ...
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加...
public class ShuZiDieJia {/*** @description * 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+222 ...
- JavaScript算法(实例九)整数的置换 / 求s=a+aa+aaa+aaaa+aa...a的值 / 自守数
1.不借助临时变量,进行两个整数的交换.(这种问题非常巧妙,需要大家跳出惯有的思维,利用 a , b进行置换). function foo(a,b){a = a - bb = b + aa = b - ...
- 萌新的Python练习菜鸟100例(十八)求s=a+aa+aaa+aaaa+aa...a的值
题目: 求s=a+aa+aaa+aaaa+aa-a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制. 分析: · 用户输入层数和数字: · ...
- 【C语言】求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字
题目描述 求s = a + aa + aaa + aaaa + aa-a的值,其中a是一个数字.例如 2 + 22 + 222 + 2222 + 22222(此时共有5个数相加),几个数相加有键盘控制 ...
- C语言编程-----求s=a+aa+aaa+aaaa+aa...a的值
一.题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. 二.程序分析:关键是计算出每一 ...
- C语言例题:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
题目:求s=a+aa+aaa+aaaa+aa-a的值,其中a是一个数字. 例如:2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. 参考程序如下: #include& ...
最新文章
- django项目用 setuptools打包构建(待更新)
- HDU4008 Parent and son [树形DP]
- moldflow2016安装教程
- 笔记本软件页面分辨率低_笔记本最容易忽略的屏幕 有几个参数一定要知道
- 《C++ Primer 第五版》(第6.1~6.3节) 函数形参和实参传递,可变参数列表和函数返回值
- 简单团队-爬取豆瓣电影T250-项目进度
- 变频器说明书_图解变频器接线方法
- 网友投诉顺丰快递员私拆快递物品摆拍、言语骚扰 官方处理来了...
- CentOS 7在虚拟机上安装之后没有桌面问题
- WMPLib.WindowsMediaPlayer 的用法
- MySQL 判断表中是否存在某条数据
- MAC python版本选择实现版本切换
- 安装Hadoop3.2.1(很多坑)
- 登录企业邮箱imap服务器,企业邮箱IMAP客户端的同步设置
- Bresenham 画圆算法原理
- 浅析网站 APP 登录界面设计
- 设计模式学习难度系数排名
- 米家和HomeKit等智能家居联动的重要性
- 定时启动软件的脚本。同时也适用于定时打开游戏。
- Netty(一)基础socketchannel,Buffer,selector黏包 半包解决 实战
热门文章
- 1U - 4.445厘米
- 手机中的com.android.provision删除可不可以,Android Provision (Setup Wizard)
- 统计大写字母出现的次数
- 2015年工作总结——①名IT女的日常
- 背包问题(Knapsack Problem)—— 0/1 背包问题 —— 总价值最大问题
- 产品经理知识体系专题
- 分门别类刷leetcode——链表
- 2018年UI设计趋势概览
- 小程序emijo表情的正则问题
- 计算机专业考研英语二国家线多少分,考研英语二国家线多少,2019年考研英语二国家线?...