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

这个题目。。用Java来计算会超时0.0

n位二进制数一共有x=2^(n-1)个数,然后举几个例子就可以看出来了:
例如:
输入4,则一共有如下这么多4位二进制数:
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
第一列有x个1,以后每列都有x/2个1,然后一共有s=x+(n-1)*x/2个1

JavaAC:

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc= new Scanner(System.in);int t =sc.nextInt();while(t-->0){int n =sc.nextInt();int cont =0;int x = (int)Math.pow(2, n-1);//int x = (int)Math.pow(2, n)-(int)Math.pow(2, n-1);//一样的cont+=x*(n-1)/2;System.out.println(cont+x);}}
}

C模拟输出:
(这个用Java会超时)

#include <iostream>
#include <stdio.h>
#include<math.h>using namespace std;int main()
{int t ;scanf("%d",&t);while(t-->0){int n ;int cont =0;int x;scanf("%d",&n);for(int i=pow(2, n-1);i<=pow(2, n)-1;i++){x=i;while(x>0){if((x%2)==1)cont++;x/=2;}}printf("%d\n",cont);}}

转载于:https://www.cnblogs.com/webmen/p/5739202.html

HDOJ(HDU) 2502 月之数(进制)相关推荐

  1. HDU 2502 月之数(简单递推)

    月之数 Problem Description 当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数. 如果一个正整数m表示成二进制,它的位数 ...

  2. C语言32位正整数作为id进程,SOJ4453 Excel列数 进制转换

    描述 我们都知道Excel的列数是用字母表示的,比如第1列对应A,第27列对应AA. 假设给定一个正整数n,你能给出它所对应的字母表示么? 输入格式 程序需要读入多个测试样例,每个测试样例中: 一个正 ...

  3. PAT练习 进制回文数(进制问题+字符串处理)

    题目描述: 如果一个数字从左边读和从右边读一样,那么这个数字就是一个回文数.例如32123就是一个回文数:17在某种意义上也是一个回文数,因为它的二进制型式--10001--是一个回文数. 请你帮忙开 ...

  4. 计算机编码二进制0001,二进制学习01(二进制,进制运算,数据宽度,无符号位有符号位编码规则)...

    二进制学习01 进制 一.二进制简介 1)什么是二进制? 2)二进制的简写形式 二.进制运算 1)八进制运算表 (1) 加法运算表 (2)乘法运算表 (3)八进制简单运算题 三.数据宽度 1)什么是数 ...

  5. 【数字电路基础】进制转换:二进制、十进制、八进制、十六进制、反码、补码、原码

    文章目录 一.无符号数进制转换 1.1.十进制转二.八.十六 1.1.1. 十进制转二进制 1.1.2. 十进制转八进制 1.1.2. 十进制转十六进制 1.2.二.八.十六转十进制 1.3 二进制转 ...

  6. python16进制转10进制_python16进制转换为10进制

    python将十六进制转为十进制数字的程序怎么写 把十六进制的字串转为十进制数字: Python代码 >>> print int('ff', 16) 255 >>> ...

  7. Java实现任意进制转换拓展进制转换计算器

    JAVA实现蓝桥杯基础练习十六进制转换八进制-----------拓展进制转换计算器 这个题目我浏览了大量的道友的文章发现十分麻烦,但仍然从其中收益菲薄,所以在这里分享一下我认为最好的代码 impor ...

  8. 栈 10进制转16进制

    #include<winuser.inl> #include<stdio.h> #include <time.h> #include <cstdlib> ...

  9. python 负数十六进制_python16进制转换为10进制 Python 将十六进制数转成4位二进制数...

    python 把16进制字符串转化为16进制数字, 比如'0x小编不希望有一天发现自己是为了别人活,小编愿意承担后果,就算偶尔寂寞甚至孤独而终,小编都能接受. 十六进制的ascii码怎么转成十六进制呢 ...

最新文章

  1. java对xml文件的读写_java 自己做的对XML文件的读写操作
  2. 【Python 】绘制惊艳的桑基图
  3. Cocoa Touch国际化
  4. 女朋友掉水里,各类程序猿怎么救?
  5. 前端常见浏览器兼容性问题及解决办法
  6. HEVC/H265 HM10.0 分析(一)NALread.cpp
  7. git 拉取远程其他分支代码_【记录】git 拉取远程分支代码,同步到另一个git上...
  8. 需求 录入多个班级的同学成绩并分别得出平均分
  9. PowerShell+you-get批量下载B站视频
  10. dadayi大一c语言累加编程题,c++习题答案中国电力出版社
  11. keil5 mdk安装教程
  12. gliffy 绘图软件
  13. 四大含金量高的算法证书考试
  14. spring-boot 与 elasticsearch 版本对应
  15. css开启3d加速的属性,开启3D加速,提高游戏速度
  16. 用python打印学生名单_Python 之 MySql 每日一练 231——查询1990年出生的学生名单...
  17. Web阶段--Servlet基础知识点
  18. 2019 年第 7 周 DApp 影响力排行榜 | TokenInsight
  19. 冷笑话,收集很多的冷笑话
  20. GPRS连接阿里云物联网平台四

热门文章

  1. 抖音计算机音乐你要我,抖音上很火的我要你快乐我要你快乐是什么歌?
  2. 达标率用计算机怎么算,达标率怎么算
  3. java虚拟键盘_web虚拟键盘VirtualKeyboard
  4. JSP EL表达式 将数组拼接成字符串
  5. mybatis报错解决办法 :Result Maps collection does not contain value for java.lang.String
  6. c语言程序设计华北电力大学,华北电力大学-《C语言程序设计》复习资料.pdf
  7. c语言求标准体重答案,C语言标准体重测试程序,请大家帮我看下,我的代码哪错了?...
  8. 循环结构作业c语言,c语言循环结构练习题带答案
  9. unity update 协程_Unity协程,停止协程及yield return使用_019
  10. 并联串联混合的电压和电流_电流互感器一次绕组串联、并联,二次绕组串联、并联的相关问题...