编程介的小学生 2017-02-04 07:52 采纳率: 20.5%
浏览 1468
已采纳

月之数

Problem Description
当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数。
如果一个正整数m表示成二进制,它的位数为n(不包含前导0),寒月称它为一个n二进制数。所有的n二进制数中,1的总个数被称为n对应的月之数。
例如,3二进制数总共有4个,分别是4(100)、5(101)、6(110)、7(111),他们中1的个数一共是1+2+2+3=8,所以3对应的月之数就是8。

Input
给你一个整数T,表示输入数据的组数,接下来有T行,每行包含一个正整数 n(1<=n<=20)。

Output
对于每个n ,在一行内输出n对应的月之数。

Sample Input

3
1
2
3

Sample Output

1
3
8

  • 写回答

3条回答 默认 最新

  • Foreveryezi 2017-02-04 08:15
    关注

    其实这就是一找规律的题目。
    需要满足的条件有:
    1、首位必须是1,这个条件很好找,n二进制数有多少个,就首先要在月之数里面加上2^(n-1)(每个二进制数首位都为1)
    2、首位解决了,就是后面的位。后面的位0和1出现的概率一样。后面一共会出现2^(n-2)*(n-1)
    所以总共是:月之数 = 2^(n-1)+2^(n-2)*(n-1) = 2^(n-2)*(n+1)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决