本文废除,参见以下链接。

参考链接:HDU2502 月之数【递推】

月之数

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11024    Accepted Submission(s): 6477

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
Source
《ACM程序设计》短学期考试_软件工程及其他专业

问题链接:HDU2502 月之数。

问题简述:参见上述链接。

问题分析:这次用递推函数来解该问题。

首位为1,n二进制数的个数就是n-1位的0和1的组合数,即pow(2,n-1)个。

定义p函数如下:

p(1) = 1

p(i) = p(i-1) * 2,i>1

递推函数如下:

f(1) = 1,1二进制数,只有1个,即"1"

f(2) = 2,2二进制数,只有2个,即"10"和"11";f(2) = f(1)+p(2);因为,2二进制数是在1二进制数基础上,左边补"0",补到1位(即"0"),最左边再加上"1",就是2二进制数。

f(i) = f(1)+f(2)+...+f(i-1)+p(i);因为,i二进制数是在1二进制数到i-1二进制数基础上左边补"0"(补"1"就会导致重复),补到i-1位后,最左边再加上"1",就是i二进制数。

有了上述的递推关系,编写程序就变得简单了。

程序说明:(略)。

AC的C语言程序如下:

/* HDU2502 月之数 */#include <stdio.h>#define MAXN 25typedef unsigned long long ULL;ULL fn[MAXN+1];void setfn()
{int i;ULL sum, pi;fn[0] = 0;sum = 0;pi = 1;for(i=1; i<=MAXN; i++) {fn[i] = sum + pi;sum += fn[i];pi <<= 1;           // pi = pi * 2;}}int main(void)
{int t, n;// 打表setfn();scanf("%d", &t);while(t--) {// 读入nscanf("%d", &n);// 输出结果printf("%lld\n", fn[n]);}return 0;
}

HDU2502 月之数(解法三)【废除!!!】相关推荐

  1. HDU2502 月之数(解法二)【废除!!!】

    本文废除,参见以下链接. 参考链接:HDU2502 月之数[递推] 月之数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/ ...

  2. HDU2502 月之数【递推】

    月之数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  3. HDU-2502 月之数 组合数

    月之数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  4. CCF201612-1 中间数(解法三)(100分)(废除!!!)

    试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等 ...

  5. 使用正则表达式实现将浮点数点左边的数每三位添加一个逗号

    题目: 如何将一个浮点数点左边的数每三位添加一个逗号.(使用正则表达式的方式实现). function toMoney(num) {return num && num.toString ...

  6. 我理解的算法 - 三数之和及两数、三数之和扩展题

    我理解的算法 - 三数之和及两数.三数之和扩展题 LeetCode 15.三数之和 扩展 三数之和变种题 两数之和变种题 LeetCode 15.三数之和 这道题的题目大家自行查看:链接在这 ,题目和 ...

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

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

  8. HDOJ(HDU) 2502 月之数(进制)

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

  9. 2015/Province_Java_A/3/九数分三组

    九数分三组 1~9的数字可以组成3个3位数,设为:A,B,C, 现在要求满足如下关系: B = 2 * A C = 3 * A 请你写出A的所有可能答案,数字间用空格分开,数字按升序排列. 注意:只提 ...

最新文章

  1. device tree --- #address-cells and #size-cells property【转】
  2. python链接安卓 跳一跳
  3. java 集成开发工具_最好的Java开发人员测试和集成工具
  4. css 百分比 怎么固定正方形_你未必知道的49个CSS知识点
  5. 读取mmdetection训练目标检测模型的日志文件(log.json)的各种AP值按epoch写入excel文件
  6. 高职院校计算机基础课程,高职院校计算机基础课程教学探讨的论文
  7. java contains 通配符_java 泛型通配符 extends, super
  8. 『Asp.Net 组件』Asp.Net 服务器组件 内嵌CSS:将CSS封装到程序集中
  9. 汽车品牌查询及车型大全查询
  10. 你还因为缺“Java项目经验”找不到工作?适合应届生的20个“项目经验”送给你
  11. 写给大家看的设计书阅读笔记1——设计的四大基本原则
  12. vue上线后图片不显示_解决Vue打包后访问图片/图标不显示的问题
  13. 追们算法----奶牛和草丛
  14. MOOC中国接受《环球时报》英文版专访:MOOC证书对求职有用吗?
  15. AD那些事 切割板子形状,线的弧度转换
  16. Oracle表空间及数据文件操作
  17. 生成自定义时长的静音音频 | Java工具类
  18. 最老程序员创业开发实训13---Android---网络请求与异步任务
  19. 水滴宣布完成D轮2.3亿美元融资,AI与大数据是未来投入重点
  20. Django的简单使用

热门文章

  1. Netty的使用:Server和Client通信
  2. 微信小程序实现浮动按钮
  3. Unity4.3 2D新特性
  4. c#图片处理之:在图片上打上文字
  5. tensorflow 显存 训练_tensorflow手动指定GPU以及显存大小
  6. 【java学习之路】(java框架)001.Maven配置及使用
  7. 【java学习之路】(java SE篇)014.Stream API
  8. 5.3.6 原子操作对非原子的操作排序
  9. 二、kafka基本操作和管理
  10. C++小白课本练习4