6-Java-A-1-标题:胡同门牌号

标题:胡同门牌号

小明家住在一条胡同里。胡同里的门牌号都是连续的正整数,由于历史原因,最小的号码并不是从1开始排的。
有一天小明突然发现了有趣的事情:
如果除去小明家不算,胡同里的其它门牌号加起来,刚好是100!
并且,小明家的门牌号刚好等于胡同里其它住户的个数!

请你根据这些信息,推算小明家的门牌号是多少?

请提交该整数,不要填写任何多余的内容或说明性文字。

分析:

设x为最小门牌号,n+1为住户总数,则有

x+(x+1)+(x+2)+...+(x+n)=100+n

化简得,(n+1)*x+(1+2+3+...+n)=100+n

for x in range(1,200):
    for n in range(1,200):
        if x<=n and (n+1)*x+n*(n+1)/2==100+n:
            print("最小门牌号是:%d,总住户的个数是:%d,小明家门牌号是:%d"%(x,n+1,n))

运行结果:

最小门牌号是:5,总住户的个数是:11,小明家门牌号是:10
最小门牌号是:8,总住户的个数是:9,小明家门牌号是:8

运行结果有两个:8和10,但是针对此题,答案到底是8还是10还是8和10,不好判定。

你可能感兴趣的:(蓝桥杯)