四个用Python实现的简单算法

数据分析学习社
数据分析学习社
数据分析学习社
348
文章
0
评论
2021-07-0711:23:48 评论 95 1881字
摘要

四个用Python实现的简单算法

一、算法题目:一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?

程序分析:在10000以内判断,将该数加上100后再开方,加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:

程序源代码:

import mathfor i in range(10000):    #转化为整型值    x = int(math.sqrt(i   100))    y = int(math.sqrt(i   268))    if(x * x == i   100and (y * y == i   268):        print (i)

实例输出结果为:

212611581

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

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

程序源代码:

year = int(input("year:
"
))month = int(input("month:
"
))day = int(input("day:
"
))months = (0,31,59,90,120,151,181,212,243,273,304,334)if 0 < month <= 12:    sum = months[month - 1]else:    print ("data error")sum  = dayleap = 0if (year % 400 == 0or ((year % 4 == 0and (year % 100 != 0)):    leap = 1if (leap == 1and (month > 2):    sum  = 1print ("it is the %dth day." % sum)

实例输出结果为:

year:2021month:6day:29it is the 180th day.

三、算法题目:斐波那契数列。

程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……

在数学上,费波那契数列是以递归的方法来定义:

F0 = 0     (n=0)F1 = 1    (n=1)Fn = F[n-1]  F[n-2](n=>2)

程序源代码:

方法一

#Python学习交流群:531509025def fib(n):    a,b = 1,1    for i in range(n-1):        a,b = b,a b    return a# 输出了第10个斐波那契数列print (fib(10))

方法二

# 使用递归def fib(n):    if n==1 or n==2:        return 1    return fib(n-1) fib(n-2)# 输出了第10个斐波那契数列print (fib(10))

以上实例输出了第10个斐波那契数列,结果为:

55

四、算法题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k 1作为k的值,重复执行第一步。

程序源代码:

from sys import stdoutn = int(input("input number:
"
))print ("n = %d" % n)for i in range(2,n   1):    while n != i:        if n % i == 0:            stdout.write(str(i))            stdout.write("*")            n = n / i        else:            breakprint ("%d" % n)

实例输出结果为:

input number:100n = 1002*2*5*5

 

 

 

 

End.

本文转自:Python新手入门

转载如果涉及作品问题请联们第一时间删除(微信lovedata0520

更多文章前往首页浏览http://www.itongji.cn/

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: