网站首页 > 教程分享 正文
第一个
题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
程序分析
:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列
后再去 掉不满足条件的排列。
程序源代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if( i != k ) and (i != j) and (j != k):
print (i,j,k)
以上实例输出结果为:
1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 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,求应发放奖金总数?
程序分析:请利用数轴
来分界,定位。
程序源代码:
#!/usr/bin/python3
i = int(input('净利润:'))
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)
以上实例输出结果为:
净利润:120000
1500.0
10000.0
11500.0
第三个
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:
假设该数为 x。
1、则:x + 100 = n2, x + 100 + 168 = m2
2、计算等式:m2 - n2 = (m + n)(m - n) = 168
3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数
。
5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
7、接下来将 i 的所有数字循环计算即可。
程序源代码
:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
for i in range(1,85):
if 168 % i == 0:
j = 168 / i;
if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0 :
m = (i + j) / 2
n = (i - j) / 2
x = n * n - 100
print(x)
以上实例输出结果为:
-99
21
261
1581
第四个
题目:八进制
转换为十进制
程序源代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
n = 0
p = raw_input('input a octal number:\n')
for i in range(len(p)):
n = n * 8 + ord(p[i]) - ord('0')
print n
以上实例输出结果为:
input a octal number:
122
82
第五个
题目:取一个整数a从右端开始的4?7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个第4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
a = int(input('input a number:\n'))
b = a >> 4
c = ~(~0 << 4)
d = b & c
print ('%o\t%o' %(a,d))
以上实例输出结果为:
input a number:
9
11 0
第六个
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
程序源代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def inp(numbers):
for i in range(6):
numbers.append(int(raw_input('输入一个数字:\n')))
p = 0
def arr_max(array):
max = 0
for i in range(1,len(array) - 1):
p = i
if array[p] > array[max] : max = p
k = max
array[0],array[k] = array[k],array[0]
def arr_min(array):
min = 0
for i in range(1,len(array) - 1):
p = i
if array[p] < array[min] : min = p
l = min
array[5],array[l] = array[l],array[5]
def outp(numbers):
for i in range(len(numbers)):
print numbers[i]
if __name__ == '__main__':
array = []
inp(array) # 输入 6 个数字并放入数组
arr_max(array) # 获取最大元素并与第一个元素交换
arr_min(array) # 获取最小元素并与最后一个元素交换
print '计算结果:'
outp(array)
以上实例输出结果为:
输入一个数字:
1
输入一个数字:
2
输入一个数字:
3
输入一个数字:
7
输入一个数字:
9
输入一个数字:
8
计算结果:
9
2
3
7
8
1
第七个
题目:对10个数进行排序。
程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。
程序源代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == "__main__":
N = 10
# input data
print ('请输入10个数字:\n')
l = []
for i in range(N):
l.append(int(input('输入一个数字:\n')))
print
for i in range(N):
print (l[i])
print
# 排列10个数字
for i in range(N - 1):
min = i
for j in range(i + 1,N):
if l[min] > l[j]:min = j
l[i],l[min] = l[min],l[i]
print ('排列之后:')
for i in range
(N):
print (l[i])
以上实例输出结果为:
请输入10个数字:
输入一个数字:
5
输入一个数字:
3
输入一个数字:
23
输入一个数字:
67
输入一个数字:
2
输入一个数字:
56
输入一个数字:
45
输入一个数字:
98
输入一个数字:
239
输入一个数字:
9
5
3
23
67
2
56
45
98
239
9
排列之后:
2
3
5
9
23
45
56
67
98
239
第八个
两个 3 行 3 列的矩阵
,实现其对应位置的数据相加,并返回一个新矩阵:
X = [[12,7,3],
[4 ,5,6],
[7 ,8,9]]
Y = [[5,8,1],
[6,7,3],
[4,5,9]]
程序分析:创建一个新的 3 行 3 列的矩阵,使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后放到新矩阵的对应位置中。
程序源代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
X = [[12,7,3],
[4 ,5,6],
[7 ,8,9]]
Y = [[5,8,1],
[6,7,3],
[4,5,9]]
result = [[0,0,0],
[0,0,0],
[0,0,0]]
# 迭代输出行
for i in range(len(X)):
# 迭代输出列
for j in range(len(X[0])):
result[i][j] = X[i][j] + Y[i][j]
for r in result:
print(r)
执行以上代码,输出结果如下:
[17, 15, 4]
[10, 12, 9]
[11, 13, 18]
第九个
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序
打印出各位数字。
程序分析:学会分解出每一位数。
程序源代码:
#!/usr/bin/python
x = int(input("请输入一个数:\n"))
a = x // 10000
b = x % 10000 // 1000
c = x % 1000 // 100
d = x % 100 // 10
e = x % 10
if a != 0:
print ("5 位数
:",e,d,c,b,a)
elif b != 0:
print ("4 位数:",e,d,c,b)
elif c != 0:
print ("3 位数:",e,d,c)
elif d != 0:
print ("2 位数:",e,d)
else:
print ("1 位数:",e)
以上实例输出结果为:
请输入一个数:
3472
4 位数: 2 7 4 3
第十个
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列
的前20项之和。
程序分析:请抓住分子与分母的变化规律。
程序源代码:
#!/usr/bin/python
from functools import reduce
a = 2.0
b = 1.0
l = []
l.append(a / b)
for n in range(1,20):
b,a = a,a + b
l.append(a / b)
print (reduce(lambda x,y: x + y,l))
以上实例输出结果为:
32.6602607986
对python感兴趣的或者想学习python小伙伴可以私聊我大家一起交流学习 分享学习经验
猜你喜欢
- 2024-09-11 「每日一练」巧用python计算猴子吃桃问题
- 2024-09-11 python初学笔记(python入门教程(非常详细)书)
- 2024-09-11 3种python的编码形式制作九九乘法口诀表
- 2024-09-11 Python 之 计算单代码的执行时间(python代码执行结果)
- 2024-09-11 Python入门编程题库35--计算三个随机数的立方和
- 2024-09-11 Python入门编程题库35--计算三个random整数的立方和
- 2024-09-11 Python数字编程第一章练习(上)(python数字代码)
- 2024-09-11 Python 0-5 循环语句和列表元组(python循环语句用法)
- 2024-09-11 第一行Python代码之KO面试官(python面试第68招)
- 2024-09-11 1-6,0基础学Python创建list,Python中布尔类型按照索引访问list
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)