【程序3】(完全平方数) and 【程序4】(一年的第几天)

'''

【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:
若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数。
设该数为m,m+100为完全平方数,其对应自然数为x。
m+100+168为完全平方数,其对应自然数为y。
y>=x+1
y^2>=x^2 + 2x +1
(y^2-x^2)>=2x + 1
168 >=2x +1
x <=83.5
m+100=x^2
x>=10
因此可以枚举10到83的所有自然数
'''
'''
知识点
模块sys:
提供一些解释器维护或使用的变量,和一些与之交互的函数。
sys.maxsize 系统最大值

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
objects为输出的对象列表,sep指明分隔符,默认为逗号。
如print("x=",x),或print("x=" x,sep=' ')以空字符分割,注意很多字符如+等不能为分隔符
格式化字符串
字符串 %s
十进制整型 %d
浮点 %f
参数列表为%()以逗号隔开
如 print("m=%d,x=%d,y=%d"%(m,x,y))
注意格式字符串与参数之间没有分隔符。
'''
#Python3.3.5
import sys
min= 10
max= 83
step =1
for x in range(min,max,step):
    m = x*x -100;
    for y in range(x+1,sys.maxsize):
        #print("x=",x)
        #print("y=",y)
        if(m +100 +168)<=y*y:
            break
   
    if(m+100+168)==y*y:
        print("m=%d,x=%d,y=%d"%(m,x,y))
      
      

'''
【程序4】:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
      情况,闰年且输入月份大于3时需考虑多加一天。
'''
'''
知识点:
布尔变量
假值:False None 0 "" () [] {}
真值:除以上假值外
可以如下验证:bool(43)

比较运算符:
x==y, x<y, x>y, x>=y, x<=y, x!=y 常见的比较符
x is y      x和y是同一个对象
x is not    y x和y不是同一个对象
x in y      x是y容器的成员
x not in y  x不是y容器的成员
'''
#Python3.3.5
year = int(input('year:\n'))
month = int(input('month:\n'))
day = int(input('day:\n'))

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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值