一、算法题目:一个整数,它加上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 100) and (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 == 0) or ((year % 4 == 0) and (year % 100 != 0)): leap = 1if (leap == 1) and (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)
- 我的微信公众号
- 微信扫一扫
- 我的微信公众号
- 微信扫一扫
评论