python2.7练习小例子(十七)

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

    程序分析:关键是计算出每一项的值。

    程序源代码:

 

#!/usr/bin/python
# -*- coding: UTF-8 -*-

Tn = 0
Sn = []
n = int(raw_input('n = '))
a = int(raw_input('a = '))
for count in range(n):
    Tn = Tn + a
    a = a * 10
    Sn.append(Tn)
    print Tn
 
Sn = reduce(lambda x,y : x + y,Sn)
print "计算和为:",Sn

    以上实例输出结果为:

 

n = 4
a = 4
4
44
444
4444
计算和为: 4936

    

#!/usr/bin/python
# -*- coding: UTF-8 -*-

a = int(raw_input("a:"))
n = int(raw_input("n:"))
list=[]
for i in range(1,n+1):
    list.append(int("{}".format(a)*i))
s = reduce(lambda x,y:x+y, list)
print list
print "计算和为:",s

    输出如下所示:

 

a:4
n:4
[4, 44, 444, 4444]
计算和为: 4936

    Python3 测试实例:

 

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

n = int(input('n = '))
a = int(input('a = '))
sum = 0
total = 0
for i in range(n):
    sum += (10 ** i)
    total += sum * a
print(total)

    

#usr/bin/env python3
#coding:utf-8

n = int(input('请输入层数:'))
a = int(input('请输入计算数:'))
Su = 0
Tu = []
for i in range(n):
    Tu.append(int(str(a)*(i+1)))
print('创建的数列为:%s' % Tu)
Su = sum(Tu)
for i in Tu:
    Su = Su + i
print('数列的和为:%s' % Su)

    

#!/usr/bin/python
# -*- coding: UTF-8 -*-

def fadd():
    a = input("输入数字:")
    loopNum = int(input("数字循环次数:"))
    sum = 0
    strsum  =""
    for i in range(loopNum):
        sum += int(str(a)*(i+1))
        strsum += str((str(a)*(i+1))) + "+"
    strsum = strsum[:len(strsum)-1] + "=" + str(sum)
    print strsum
fadd()

    

#!/usr/bin/python
# -*- coding: UTF-8 -*-

def calculate(a,n):
    sum = 0
    for i in range(1,n+1):
        x = int(str(a)*i)
        sum+=x
    print sum
calculate(4,4)

    

#!/usr/bin/python
# -*- coding: UTF-8 -*-

n = 4
c = 4

def num(n,time):
    '拼接数字,如 n =3,time = 4 返回3333'
    l = []
    while time > 0:
        l.append(str(n))
        time -= 1
    l = ''.join(l)
    return int(l)

sum = 0
for i in range(1,c + 1):
    j= num(n,i)
    sum = sum + j

print sum

    python3 测试实例:使用递归函数生成每一项的值,并相加:

 

#!/usr/bin/env python3

def f(n,a):
    if(n==1):
        return a
    else:
        r=f(n-1,a)*10+a
        return r

n=int(input("n=\n"))
a=int(input("a=\n"))
print("")
sum=0
for i in range(1,n+1):
    print(f(i,a))
    sum=sum+f(i,a)

print("sum=",sum)

    Python3 测试案例:

 

#!/usr/bin/python3

n=input('请输入计算数:')
m=eval(input('请输入层数:'))
s=0
for i in range(1,m+1):
    a=n*i
    s+=eval(a)
print('{}'.format(s))

    

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import math

a=input("请输入a:")
n=input("请输入数字的个数:")
r = 0
for i in range(0,int(n)):
    num=0
    for j in range(0,i+1):
        num += int(a) * int(math.pow(10,j))
    r += num
print(r)

    Python3 测试:

 

#!/usr/bin/python3
# -*- coding: UTF-8 -*-

def suman(a, n):
    if n<1:    return []
    s = [a]
    m = 10**len(str(a))
    for i in range(0, n-1):
        s.append(s[i]*m + a)
    return sum(s), s

print(suman(4,5))

    Python3 下测试:

 

num=input('输入 1-10 之间的数字:')
times=int(input('次数:'))
s=0
for i in range(1,times):
    print(num*i,'+',end='')
    s+=int(num*i)
print(num*times,'=',s+int(num*times))

    Python3 下测试,检测输入是否为数字:

 

a=input('请输入一个整数:')
b=input('请输入次数:')
d=0

if str.isdigit(a)and str.isdigit(b):
    for i in range(1,int(b)+1):
        c=a*i
        d+=int(c)
    print('和为:'+str(d))
else:
    print('请重新输入!')

    Python3 测试:

 

for j in range(5):
    a = str(input("提示:请输入1~9之间的正整数:"))
    n = int(input("提示:请输入大于零的正整数:"))
    if n <= 0 or int(a) >= 10 or int(a) <= 0:
        print("请根据提示输入正确的数")       
        continue
    sum = 0
    for i in range(1, n+1):
        print(int(a*i), end = ' ')
        sum += int(a*i)
    print("这些数的总和为:%d"%sum)

    这个小例子对实际应用也是有帮助的。如果感觉不错的话,请多多点赞支持哦。。。

  原文链接:https://blog.csdn.net/luyaran/article/details/80063195

posted @ 2018-04-25 13:08  luyaran  阅读(556)  评论(0编辑  收藏  举报