目录
方程整数解
方程: a^2 + b^2 + c^2 = 1000
这个方程有整数解吗?有:a,b,c=6,8,30 就是一组解。
你能算出另一组合适的解吗?
请填写该解中最小的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
flag=False
for i in range(1,101):
for j in range(1,101):
for k in range(1,101):
if i*i+j*j+k*k==1000 and i!=6 and j!=8 and k!=30:
print(i,j,k)
flag=True
break
if flag:
break
if flag:
break
星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
请严格按照格式书写。不能出现其它文字或符号。
#月份日期表
month_days=[[0,31,28,31,30,31,30,31,31,30,31,30,31],[0,31,29,31,30,31,30,31,31,30,31,30,31]]
#判断闰年
def isLeap(year):
if year%4==0 and year%100!=0 or year%400==0:
return True
else:
return False
year=2014
month=11
day=9
#模拟爆炸过程
i=1
while i<=1000:
day+=1
#超过当月最大天数
if day>month_days[1 if isLeap(year) else 0][month]:
day=1
month+=1
if month>12:
month=1
year+=1
i+=1
print('{}-{:0>2d}-{:0>2d}'.format(year,month,day))
奇妙的数字
小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。
你能猜出这个数字是多少吗?
请填写该数字,不要填写任何多余的内容。
#判断平方数字和立方数字是否正好用了从0-9
def juage(x,y):
flag=True
number_list=[]
x=str(x)
y=str(y)
for i in x:
number_list.append(i)
for i in y:
number_list.append(i)
number_list.sort()
for i in range(10):
if int(number_list[i])!=i:
flag=False
break
return flag
for i in range(1,10*10):
if juage(i*i,i*i*i):
print(i)
break
牌型种数
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
#组合数学
sum=1
number=52
#模拟发牌
for i in range(1,14):
sum*=number
number-=1
print(sum)
手链样式
小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。
他想用它们串成一圈作为手链,送给女朋友。
现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢?
请你提交该整数。不要填写任何多余的内容或说明性的文字。
组合数学,圆周排列,+去重
饮料换购
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。
输入:一个整数n,表示开始购买的饮料数量(0<n<10000)
输出:一个整数,表示实际得到的饮料数
例如:
用户输入:
100
程序应该输出:
149
用户输入:
101
程序应该输出:
151
n=int(input())
sum=n
while n>0:
#如果饮料足够换购
if n>=3:
n-=3
n+=1
sum+=1
else:
break
print(sum)
奖券数目
有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。
请提交该数字(一个整数),不要写任何多余的内容或说明性文字。
def juage(n):
n=str(n)
flag=False
if '4' in n:
flag=True
return flag
return flag
ans=0
for i in range(10000,100000):
if not juage(i):
ans+=1
print(ans)
三羊献瑞
观察下面的加法算式:
祥 瑞 生 辉
+ 三 羊 献 瑞
-------------------
三 羊 生 瑞 气
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
# a0 a1 a2 a3
#+ a4 a5 a6 a7
#-------------
#a4 a5 a2 a1 a8
#全排列0-9找到合适解
number_list=[]
for i in range(10):
number_list.append(i)
from itertools import permutations
for item in permutations(number_list):
if item[0]==0 or item[4]==0:
continue
x=item[0]*1000+item[1]*100+item[2]*10+item[3]
y=item[4]*1000+item[5]*100+item[6]*10+item[7]
z=item[4]*10000+item[5]*1000+item[2]*100+item[1]*10+item[8]
if x+y==z:
print(y)
break
加法变乘法
我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
#前后两式子相减,消去同类项
diff_number=2015-1225
flag=False
for i in range(1,47):
for j in range(1,48):
if i*(i+1)+j*(j+1)-(i+i+1)-(j+j+1)==diff_number:
if i!=10:
print(i)
flag=True
break
if flag:
break
隔行变色
Excel表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变色的样式。
小明设计的样式为:第1行蓝色,第2行白色,第3行蓝色,第4行白色,....
现在小明想知道,从第21行到第50行一共包含了多少个蓝色的行。
请你直接提交这个整数,千万不要填写任何多余的内容。
ans=0
for i in range(21,51):
if i%2!=0:
ans+=1
print(ans)
立方尾不变
有些数字的立方的末尾正好是该数字本身。
比如:1,4,5,6,9,24,25,....
请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。
请提交该整数,不要填写任何多余的内容。
def juage(n):
square_number=n*n*n
square_number=str(square_number)
n=str(n)
length=len(n)
flag=False
if square_number[len(square_number)-length:]==n:
flag=True
return flag
return flag
ans=0
for i in range(1,10001):
if juage(i):
ans+=1
print(ans)