网上搜查到的Python算法题,自己思考完成

【程序1】

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数(比如121,212,题目应该是无连续重复数字)都是多少?

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

自己写的(这个“无重复数字”存在异议):

list=[1,2,3,4]

list1=[]

i=None

j=None

K=None

for i in list:

for j in list :

for k in list :

num=i*100+j*10+k

list1.append(num)

if i==j or j==k :

list1.pop()

print(list1)

sum=len(list1)

print(sum)

题目原答案:

sum=0 for i in range(1,5,1): for j in range(1,5,1): for k in range(1,5,1): if(i!=j&j!=k): sum=sum+1; print i,j,k # 这里去重 print sum

【程序2】

题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?

自己写的:

a=input('请输入当月利润:')

num=int(a)

bonus=None

def jisuan(num):

if num<=10:

bonus=num*0.1

elif num>10 and num<=20:

bonus=10*0.1+(num-10)*0.075

elif num >20 and num<=40:

bonus=10*0.075+10*0.1+(num-20)*0.05

elif num>40 and num<=60:

bonus=10*0.075+10*0.1+20*0.05+(num-40)*0.03

elif num>60 and num<=100:

bonus=10*0.075+10*0.1+20*0.05+20*0.03+(num-60)*0.015

else:

bonus=10*0.075+10*0.1+20*0.05+20*0.03+40*0.015+(num-100)*0.01

return bonus

a=jisuan(num)

print(a)

原答案:

#coding:utf-8 #题目:企业发放的奖金根据利润提成。利润(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,求 # 应发放奖金总数?

bonus1=100000*0.1

bonus2=bonus1+100000*0.75

bonus4=bonus2+200000*0.5

bonus6=bonus4+200000*0.3

bonus10=bonus6+400000*0.15

mon = input("请输入月利润:\n")

if mon<=100000: bonus=mon*0.1

else:

if mon<=200000: bonus=bonus1+(mon-100000)*0.075

else:

if mon <= 400000: bonus = bonus2 + (mon - 200000) * 0.05

else:

if mon <= 600000: bonus = bonus4 + (mon - 400000) * 0.03

else:

if mon <= 1000000: bonus = bonus6 + (mon - 600000) * 0.015

else:

if mon > 1000000: bonus = bonus10 + (mon - 1000000) * 0.01 print bonus自己写的虽然已经实现,还是需要修改代码

【程序3】

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? (范围都没给????)

自己写:

import math

for i in range(100000):

if (math.sqrt(i+100)-int(math.sqrt(i+100))==0) and (math.sqrt(i+268)-int(math.sqrt(i+268))==0) :

print(i)

答案:

#coding:utf-8

import math

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

#第一种解法 判断x,y开方同时为整数即可

print '解法一'

for i in range(100000):

if(math.sqrt(i+100)-int(math.sqrt(i+100))==0):

x = int(math.sqrt(i + 100)) # 开方求x x为浮点数

if (math.sqrt(i + 268) - int(math.sqrt(i + 268)) == 0):

y = int(math.sqrt(i + 268)) # 开方求x x为浮点数

print x,y

print '该数为%d' %i

#第二种 直接求x*x-y*y=168

print '解法二'

for i in range(10000):

for j in range(1000):

if(i*i-j*j==168):

print i,j

print '该数为%d' %(i*i-268)

#第三种 标准解法

print '解法三'

for i in range(100000):

if(math.sqrt(i+100)-int(math.sqrt(i+100))==0):

x = int(math.sqrt(i + 100)) # 开方求x x为浮点数

if (math.sqrt(i + 268) - int(math.sqrt(i + 268)) == 0):

y = int(math.sqrt(i + 268)) # 开方求x x为浮点数

if(x*x==i+100 and y*y==i+268):

print x, y

print '该数为%d' % i

【程序4】

题目:输入某年某月某日,判断这一天是这一年的第几天?

程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

#平年

listmonthrun=[0,31,28,31,30,31,30,31,31,30,31,30,31]

#闰年

listmonthping=[0,31,29,31,30,31,30,31,31,30,31,30,31]

try:

str=input('请输入日期,格式xxxx-xx-xx:')

days=0

year,month,day=str.split('-')

year=int(year)

month=int(month)

day=int(day)

print(type(year),month,day)

if (year%400==0) or (year%4==0 and year%100!=0):

for i in range(0,month):

# print(i)

print(listmonthping[i])

days+=listmonthping[i]

else:

for i in range(0,month):

# print(i)

print(listmonthrun[i])

days+=listmonthrun[i]

days=days+day

print('这一天是这一年中第%s天'%(days))

except Exception as e:

print('输入时间格式有误请重新输入')

答案:

#coding:utf-8

data=raw_input('输入年月份,格式2016-05-12:')

#字符串切割

s=data.split('-')#以-为标志切割

if(len(s)==3):

# 赋值

year = int(s[0])

mon = s[1]

day = s[2]

print mon

# python没有switch case 用字典方式

else:

print '输入有误'

da={'1':0,'2':31,'3':59,'4':90,'5':120,'6':151,'7':181,'8':212,'9':243,'10':273,'11':304,'12':334}

def f(x):

return da.get(x)

sum=int(f(mon))+int(day)

if(year%400==0 or (year%4==0 and year%100!=0)):

if(int(mon)>=3):

sum=sum+1

print sum

【程序5】

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

自己写:

list1=[]

print('请输入三个整数:')

a=int(input('第一个数:'))

list1.append(a)

b=int(input('第二个数:'))

list1.append(b)

c=int(input('第三个数:'))

list1.append(c)

#将三个数加入到列表中

#解法一:使用排序法

def paixu(list):

for i in range(0,len(list)):

for j in range(i+1,len(list)):

if list[i] >list[j]:

temp=list[i]

list[i]=list[j]

list[j]=temp

return list

def printout(list):

for i in list:

print(i)

list2 = paixu(list1)

printout(list2)

#解法二:使用python内置函数

print(list1)

list1=sorted(list1)

printout(list1)

答案:太过繁琐

【程序6】

题目:输出9*9口诀。

for i in range(1,10):

for j in range(1,i+1):

print('%d*%d=%d'%(i,j,i*j),end=' ')

print()

答案:有点繁琐

【程序7】

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

程序分析:斐波那契数列 即1,1,2,3,5,8,13,21…. 第三个数开始下一个数为前面两个数之和

#m1表示第一个月,m2表示第二个月

m1=m2=1

for i in range(1,13):

if i<=2:

print(m1)

else:

m1=m1+m2

m2=m2+m1

print(m1,m2)

【程序7】

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

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。

import math

for i in range(101,201):

num=math.sqrt(i)

if i%2==0 or i%num==0:

pass

else:

print(i)

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

for i in range(100,1000):

#百位

num1=int(i/100)

#十位

num2=int(i/10)%10

#个位数

num3=i%10

if i==(num1**3+num2**3+num3**3):

print(i)

python 100题_python 100题相关推荐

  1. python计算题_python计算题

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 以后我还会分享一些精妙而又有趣的python算法题. 今天也给大家分享几个pyt ...

  2. python编程加减法_python编程题之二进制加减法运算的案例分析

    python编程题之二进制加减法运算的案例分析 发布时间:2020-10-27 09:24:11 来源:亿速云 阅读:62 作者:小新 小编给大家分享一下python编程题之二进制加减法运算的案例分析 ...

  3. python圆面积函数_python函数题

    请大家严格按照下面顺序编写圆形生成器程序. : 定义函数getCircleArea(r),可以对指定r计算圆面积.计算公式math库的pi*r*r. 定义函数get_rList(n),功能:输入n个值 ...

  4. 有没有python搜题_python搜题公众号

    [单选题]以下关于辽西走廊论述不正确的是 A. 辽代以前尚未被发现 B. 南临渤海辽东湾 C. 是狭长的平原地带 D. 是连接中原与青藏高原的交通线 [其他]下列说法错误的是A.在国外停留时间即使超过 ...

  5. python填空题_python填空题

    以下为<python填空题>的无排版文字预览,完整内容请下载 1.Python 提供了 6 个与字符串相关的函数.其中,_________函数可以返回字符串的长度. 在 Python 中, ...

  6. python比赛积分类算法题_Python算法题(一)——青蛙跳台阶

    题目一(青蛙跳台阶): 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 假设只有一级台阶,则总共只有一种跳法: 假设有两级台阶,则总共有两种跳法: ...

  7. python算法题_Python算法题

    #!/usr/bin/env python#-*- encoding: utf-8 -*- '''@File :getPositivenumberList.py @Description :输入一个正 ...

  8. 学会python的基础操作题_Python基本操作题

    1. 请补充横线处的代码,让 Python 帮你随机选一个饮品吧! import ____ ①____ (1) listC = [' 加多宝 ',' 雪碧 ',' 可乐 ',' 勇闯天涯 ',' 椰子 ...

  9. python 逆序_python编程题-句子的逆序

    对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序. 给定一个原字符串A和他的长度,请返回逆序后的字符串. 测试样例: &q ...

最新文章

  1. python有用知识
  2. wdns服务器未响应,Win7系统​网络诊断提示DNS服务器未响应的解决方法
  3. Java正则表达式:我最期望弄懂的知识,希望对大家都有帮助
  4. kettle 查询数据库写入文件_怎么连接数据库-详解如何用kettle连接mysql数据库并导出sql查询结果...
  5. 在CRM呼叫中心的搜索结果点击Edit按钮后的处理逻辑
  6. go build编译不同环境
  7. 评分9.3,你想要的那本书,来了!
  8. linux oracle11g开机,Linux 下Oracle11g 自动随系统启动
  9. java 比较源文件_Beyond Compare比较Java源代码文件的操作流程
  10. c++ 11 中for循环新增的用法(基于范围的for循环)
  11. Python-Numpy语法总结-数组的创建
  12. 新东方王江涛十天背单词法(艾宾浩斯记忆曲线)(适用于各阶段各种记忆背诵类的知识点,许多人成功上岸)
  13. 2020年javaWeb面试题(初)
  14. nginx配置ssl证书
  15. 对搜索引擎技术的认识和发展
  16. Python3:批量读取excel百度分享链接保存到百度网盘
  17. 实现了一个简单的以图搜图功能(带代码)
  18. 短信、长短信、彩信的PDU
  19. 如何将本地项目上传到gitee仓库里
  20. AIX日志型文件系统的nbpi

热门文章

  1. 渲染百万网页,终于找到影响性能的原因了
  2. 中台“不火”了,企业数智转型如何破圈?
  3. 直播、线上办公、IoT需求井喷,Wi-Fi 6如何防止网络“塞车”?
  4. 懂语言者得天下:NLP 凭什么被称为人工智能的掌上明珠?
  5. 儿童节教你用 Python 画出童年回忆
  6. 6 万出头的北京房价,程序员如何靠自己安家?
  7. ofo 退押金出新招;快手回应“弃拼多多联手阿里”;Julia 1.3 发布 | 极客头条...
  8. PHP 没有真正的数组!
  9. 今年的 618,你清空的不仅仅是购物车,还有焦虑和迷茫
  10. @游戏开发者,ImGUI 能成为 GUI 的未来吗?