Python的常见几道数学运算题
一 python 相关数学函数及使用示例
常用的数学函数:
ceil(x) 取顶
floor(x) 取底
fabs(x) 取绝对值
factorial (x) 阶乘
hypot(x,y) sqrt(x*x+y*y)
pow(x,y) x的y次方
sqrt(x) 开平方
log(x)
log10(x)
trunc(x) 截断取整数部分
isnan (x) 判断是否NaN(not a number)
degree (x) 弧度转角度
radians(x) 角度转弧度
1.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
import math
for i in range(10000):
x=int(math.sqrt(i+100))
y=int(math.sqrt(i+268))
if (x*x==i+100)and(y*y==i+268):
print i
主要是中间的这三句,首先是定义了x,y,然后列出了成功的条件。
2.取任意小于1美元的金额,然后计算可换成最少多少枚硬币。硬币有1美分、5美分、10美分、25美分4种,如0.76美元可换3个25美分、1枚1美分。
coins=[25,10,5,1]
for obj in coins:
if money>=obj:
print money/obj
money=money%obj
在python 2.7中,这里的除是整除。
3.求1到100的素数
from math import sqrt
i=100
list=[]
for i in range (2,101):
f=True
root=sqrt(i)
root=int(root)
for j in range (2,root+1):
if i%j==0:
f=False
break
if f:
list.append(i)
print list
设定了一个flag 变量和一个list进行控制,实现结果。
4.求一个三位数,三位数字都不相同的情况。
for i in range(1,5):
for j in range (1,5):
for k in range (1,5):
if (i!=j) and (j!=k) and(i!=k):
print i,j,k
注意如果只列入i!=j,j!=k是不行的。
5.用户输入5个数字组成列表或者元祖,输出其平均值
list=[]
sum=0
i=0
while i<5:
num=raw_input("Please input a num>")
sum=sum+int(num)
list.append(num)
i=i+1
print sum/5
print list
(1)是要注意num需要转化成Int型的
(2)list=list.append(num)是不可以这么写的。