Python 经典编程题

2022-01-11 14:29:33 浏览数 (1)

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说Python 经典编程题,希望能够帮助大家进步!!!

代码语言:javascript复制
# -*- 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=%st' %(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 ']'%(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
        b = i/100
        c = (int(i/10))
        if i == a**3 b**3 c**3:
            print "]"%(i),

if __name__ == "__main__":
    main()

0 人点赞