python 100题_python 100题
网上搜查到的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题相关推荐
- python计算题_python计算题
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 以后我还会分享一些精妙而又有趣的python算法题. 今天也给大家分享几个pyt ...
- python编程加减法_python编程题之二进制加减法运算的案例分析
python编程题之二进制加减法运算的案例分析 发布时间:2020-10-27 09:24:11 来源:亿速云 阅读:62 作者:小新 小编给大家分享一下python编程题之二进制加减法运算的案例分析 ...
- python圆面积函数_python函数题
请大家严格按照下面顺序编写圆形生成器程序. : 定义函数getCircleArea(r),可以对指定r计算圆面积.计算公式math库的pi*r*r. 定义函数get_rList(n),功能:输入n个值 ...
- 有没有python搜题_python搜题公众号
[单选题]以下关于辽西走廊论述不正确的是 A. 辽代以前尚未被发现 B. 南临渤海辽东湾 C. 是狭长的平原地带 D. 是连接中原与青藏高原的交通线 [其他]下列说法错误的是A.在国外停留时间即使超过 ...
- python填空题_python填空题
以下为<python填空题>的无排版文字预览,完整内容请下载 1.Python 提供了 6 个与字符串相关的函数.其中,_________函数可以返回字符串的长度. 在 Python 中, ...
- python比赛积分类算法题_Python算法题(一)——青蛙跳台阶
题目一(青蛙跳台阶): 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 假设只有一级台阶,则总共只有一种跳法: 假设有两级台阶,则总共有两种跳法: ...
- python算法题_Python算法题
#!/usr/bin/env python#-*- encoding: utf-8 -*- '''@File :getPositivenumberList.py @Description :输入一个正 ...
- 学会python的基础操作题_Python基本操作题
1. 请补充横线处的代码,让 Python 帮你随机选一个饮品吧! import ____ ①____ (1) listC = [' 加多宝 ',' 雪碧 ',' 可乐 ',' 勇闯天涯 ',' 椰子 ...
- python 逆序_python编程题-句子的逆序
对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序. 给定一个原字符串A和他的长度,请返回逆序后的字符串. 测试样例: &q ...
最新文章
- python有用知识
- wdns服务器未响应,Win7系统​网络诊断提示DNS服务器未响应的解决方法
- Java正则表达式:我最期望弄懂的知识,希望对大家都有帮助
- kettle 查询数据库写入文件_怎么连接数据库-详解如何用kettle连接mysql数据库并导出sql查询结果...
- 在CRM呼叫中心的搜索结果点击Edit按钮后的处理逻辑
- go build编译不同环境
- 评分9.3,你想要的那本书,来了!
- linux oracle11g开机,Linux 下Oracle11g 自动随系统启动
- java 比较源文件_Beyond Compare比较Java源代码文件的操作流程
- c++ 11 中for循环新增的用法(基于范围的for循环)
- Python-Numpy语法总结-数组的创建
- 新东方王江涛十天背单词法(艾宾浩斯记忆曲线)(适用于各阶段各种记忆背诵类的知识点,许多人成功上岸)
- 2020年javaWeb面试题(初)
- nginx配置ssl证书
- 对搜索引擎技术的认识和发展
- Python3:批量读取excel百度分享链接保存到百度网盘
- 实现了一个简单的以图搜图功能(带代码)
- 短信、长短信、彩信的PDU
- 如何将本地项目上传到gitee仓库里
- AIX日志型文件系统的nbpi
热门文章
- 渲染百万网页,终于找到影响性能的原因了
- 中台“不火”了,企业数智转型如何破圈?
- 直播、线上办公、IoT需求井喷,Wi-Fi 6如何防止网络“塞车”?
- 懂语言者得天下:NLP 凭什么被称为人工智能的掌上明珠?
- 儿童节教你用 Python 画出童年回忆
- 6 万出头的北京房价,程序员如何靠自己安家?
- ofo 退押金出新招;快手回应“弃拼多多联手阿里”;Julia 1.3 发布 | 极客头条...
- PHP 没有真正的数组!
- 今年的 618,你清空的不仅仅是购物车,还有焦虑和迷茫
- @游戏开发者,ImGUI 能成为 GUI 的未来吗?