HDOJ(HDU) 2502 月之数(进制)
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 月之数(进制)相关推荐
- HDU 2502 月之数(简单递推)
月之数 Problem Description 当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数. 如果一个正整数m表示成二进制,它的位数 ...
- C语言32位正整数作为id进程,SOJ4453 Excel列数 进制转换
描述 我们都知道Excel的列数是用字母表示的,比如第1列对应A,第27列对应AA. 假设给定一个正整数n,你能给出它所对应的字母表示么? 输入格式 程序需要读入多个测试样例,每个测试样例中: 一个正 ...
- PAT练习 进制回文数(进制问题+字符串处理)
题目描述: 如果一个数字从左边读和从右边读一样,那么这个数字就是一个回文数.例如32123就是一个回文数:17在某种意义上也是一个回文数,因为它的二进制型式--10001--是一个回文数. 请你帮忙开 ...
- 计算机编码二进制0001,二进制学习01(二进制,进制运算,数据宽度,无符号位有符号位编码规则)...
二进制学习01 进制 一.二进制简介 1)什么是二进制? 2)二进制的简写形式 二.进制运算 1)八进制运算表 (1) 加法运算表 (2)乘法运算表 (3)八进制简单运算题 三.数据宽度 1)什么是数 ...
- 【数字电路基础】进制转换:二进制、十进制、八进制、十六进制、反码、补码、原码
文章目录 一.无符号数进制转换 1.1.十进制转二.八.十六 1.1.1. 十进制转二进制 1.1.2. 十进制转八进制 1.1.2. 十进制转十六进制 1.2.二.八.十六转十进制 1.3 二进制转 ...
- python16进制转10进制_python16进制转换为10进制
python将十六进制转为十进制数字的程序怎么写 把十六进制的字串转为十进制数字: Python代码 >>> print int('ff', 16) 255 >>> ...
- Java实现任意进制转换拓展进制转换计算器
JAVA实现蓝桥杯基础练习十六进制转换八进制-----------拓展进制转换计算器 这个题目我浏览了大量的道友的文章发现十分麻烦,但仍然从其中收益菲薄,所以在这里分享一下我认为最好的代码 impor ...
- 栈 10进制转16进制
#include<winuser.inl> #include<stdio.h> #include <time.h> #include <cstdlib> ...
- python 负数十六进制_python16进制转换为10进制 Python 将十六进制数转成4位二进制数...
python 把16进制字符串转化为16进制数字, 比如'0x小编不希望有一天发现自己是为了别人活,小编愿意承担后果,就算偶尔寂寞甚至孤独而终,小编都能接受. 十六进制的ascii码怎么转成十六进制呢 ...
最新文章
- java对xml文件的读写_java 自己做的对XML文件的读写操作
- 【Python 】绘制惊艳的桑基图
- Cocoa Touch国际化
- 女朋友掉水里,各类程序猿怎么救?
- 前端常见浏览器兼容性问题及解决办法
- HEVC/H265 HM10.0 分析(一)NALread.cpp
- git 拉取远程其他分支代码_【记录】git 拉取远程分支代码,同步到另一个git上...
- 需求 录入多个班级的同学成绩并分别得出平均分
- PowerShell+you-get批量下载B站视频
- dadayi大一c语言累加编程题,c++习题答案中国电力出版社
- keil5 mdk安装教程
- gliffy 绘图软件
- 四大含金量高的算法证书考试
- spring-boot 与 elasticsearch 版本对应
- css开启3d加速的属性,开启3D加速,提高游戏速度
- 用python打印学生名单_Python 之 MySql 每日一练 231——查询1990年出生的学生名单...
- Web阶段--Servlet基础知识点
- 2019 年第 7 周 DApp 影响力排行榜 | TokenInsight
- 冷笑话,收集很多的冷笑话
- GPRS连接阿里云物联网平台四
热门文章
- 抖音计算机音乐你要我,抖音上很火的我要你快乐我要你快乐是什么歌?
- 达标率用计算机怎么算,达标率怎么算
- java虚拟键盘_web虚拟键盘VirtualKeyboard
- JSP EL表达式 将数组拼接成字符串
- mybatis报错解决办法 :Result Maps collection does not contain value for java.lang.String
- c语言程序设计华北电力大学,华北电力大学-《C语言程序设计》复习资料.pdf
- c语言求标准体重答案,C语言标准体重测试程序,请大家帮我看下,我的代码哪错了?...
- 循环结构作业c语言,c语言循环结构练习题带答案
- unity update 协程_Unity协程,停止协程及yield return使用_019
- 并联串联混合的电压和电流_电流互感器一次绕组串联、并联,二次绕组串联、并联的相关问题...