题目:一个整数,它加上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=utf8
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 = m * n - 100
print x
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:
程序源代码:
#!/usr/bin/python
#condig=utf8
year = int(raw_input('year:\n'))
month = int(raw_input('month:\n'))
day = int(raw_input('day:\n'))
#months = (0,31,59,90,120,151,181,212,243,273,304,334)
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 += day
leap = 0
if (year % 400 == 0) or (year % 4 == 0) and (year % 100 !=0):
leap = 1
if (leap == 1) and (month > 2):
sum += 1
print 'it is the %dth day.' % sum
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
程序源代码:
#!/usr/bin/python
#coding=utf8
l = []
for i in range(3):
x = int(raw_input('integer:\n'))
l.append(x)
l.sort()
print l
题目:斐波那契数列。
程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
在数学上,费波那契数列是以递归的方法来定义:
#!/usr/bin/python
#coding=utf8
aa = int(raw_input('请输入需要第几种方式实现[1,2,3]:'))
if (aa == 1):
n = int(raw_input('斐波那契数列的输入参数是:'))
def fib(n):
a,b = 1,1
for i in range(n-1):
a,b = b,a+b
return a
print '第10个斐波那契数列是:',fib(n)
elif (aa == 2):
n = int(raw_input('斐波那契数列的输入参数是:'))
def fib(n):
if n==1 or n==2:
return 1
return fib(n-1)+fib(n-2)
print '第10个斐波那契数列是:',fib(n)
elif (aa == 3):
n = int(raw_input('斐波那契数列的输入参数是:'))
def fib(n):
if n == 1:
return [1]
elif n == 2:
return [1,1]
fibs = [1,1]
for i in range(2,n):
fibs.append(fibs[-1] + fibs[-2])
return fibs
print '第10个斐波那契数列是:',fib(n)
else:
print '参数错误,over'
题目:将一个列表的数据复制到另一个列表中。
程序分析:使用列表[:]。
#!/usr/bin/python
#coding=utf8
a = [1,2,3]
b = a[:]
print b
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




