Python的常见几道数学运算题

时间:2023-02-26 20:24:45

一 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)是不可以这么写的。