分享

Python 经典编程题

 雨润心田品风雨 2019-03-15
复制代码
# -*- coding: cp936 -*- 
#enconding: utf-8 

########################################################
#打印99乘法表
########################################################
def gen(line_cnt):
    for i in range(1,line_cnt+1):
        for j in range(1,i+1):
            m=i*j
            print '%s*%s=%s\t' %(i,j,m),
        print ''
if __name__== '__main__':
    gen(9)
    
#########################################################
#求可用被17整除的所有三位数

for num in range(99,1000):
    if num % 17 == 0:
        print num

##########################################################
#写一个程序,提示输入整数X,然后计算从1到X连续整数的和
sum = 0
x = int (raw_input ('pls input x: '))
#输入函数
for num in range(0,x):
     sum += num
print sum


###########################################################
#改写上面的计算过程,循环嵌套计算连续的和
x = int(raw_input('please input x : ' ))
layer = 1
while layer <= x:    
    lsum = 0
    count =1
    while count <=layer:
        lsum += count
        count += 1
        fstr = ''
        for num in range(1 , layer ):
            
            fstr = fstr + str(num) + '+'
        fstr += str(layer)
        print fstr,'=',lsum
    layer += 1
            # 如何控制空格的数量让等号在一起呢

#############################################################################
#题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
cnt = 0#count the sum of result
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i!=j and i!=k and j!=k:
                print i*100+j*10+k
                cnt+=1
print cnt


"""
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;
利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,
可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;
40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,
高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,
从键盘输入当月利润I,求应发放奖金总数?
"""

i = int(raw_input('Enter the profit:'))
arr = [1000000,600000,400000,200000,100000,0]
rat = [0.01,0.015,0.03,0.05,0.075,0.1]
r = 0
for idx in range(0,6):
    if i>arr[idx]:
        r+=(i-arr[idx])*rat[idx]
        print (i-arr[idx])*rat[idx]
        i=arr[idx]
print r


#题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

import math
num = 1
while True:
    if math.sqrt(num + 100)-int(math.sqrt(num + 100)) == 0 and math.sqrt(num + 268)-int(math.sqrt(num + 268)) == 0:
        print(num)
        break
    num += 1

#题目:输入某年某月某日,判断这一天是这一年的第几天?
#author: 叛军
import datetime
import time
dtstr = str(raw_input('Enter the datetime:(20151215):'))
dt = datetime.datetime.strptime(dtstr, "%Y%m%d")
another_dtstr =dtstr[:4] +'0101'
another_dt = datetime.datetime.strptime(another_dtstr, "%Y%m%d")
print (int((dt-another_dt).days) + 1)

##古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
  ###后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

a = 1
b = 1
for i in range(1,21,2):
    print '%d %d'%(a,b),
    a += b
    b += a



###题目:判断101-200之间有多少个素数,并输出所有素数。


#!/usr/bin/python
#-*- coding:utf-8 -*-
from math import sqrt 
def main():
    for i in range(101,201):
        flag = 1
        k = int(sqrt(i))
        for j in range(2,k+1):
            if i%j == 0:
                flag = 0
                break
        if flag == 1:
            print '%5d'%(i),
    
if __name__ == "__main__":
    main()


#题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

#!/usr/bin/python
#-*- coding:utf-8 -*-
def main():
    for i in range(100,1000):
        a = i%10
        b = i/100
        c = (int(i/10))%10
        if i == a**3+b**3+c**3:
            print "%5d"%(i),

if __name__ == "__main__":
    main()
复制代码

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多