一二三四五 上山打老虎

模拟笔试第一题<数学规律>

题意:对于[1:n](n<=1e18)构造一个最小的数列,使得数列中的任意个数的相加能得到[1:n]所有的数,且数列中数只可用一次,比如n=6时,最小数列是{1,2,4}

方法:对于数值相加可以发现规律:
{1,2}->{1,2,3} n=[3]
{1,2,4}->{1,2,3,4,5,6,7} n=[4:7]
{1,2,4,8}->{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15} n=[8:15]
对于数值n,最小的数列长度为m,2^m和n存在关系,由此计算m即可

如果把相加改为相减

方法:数值规律变化为:
{1,3}->{1,2,3,4} n=[2:4]
{1,3,5}->{1,2,3,4,5,6,7,8,9} n=[5:9]
{1,3,5,7}->{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} n=[10:16]
·····
对于数值n,最小的数列长度为m,m^2n之间存在关系,由此计算m即可

posted @ 2021-07-29 22:13  黒川川  阅读(42)  评论(0)    收藏  举报