HDU2502 月之数(解法三)

news/2024/7/5 7:00:57

问题链接: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 25

typedef 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--) {
        // 读入n
        scanf("%d", &n);

        // 输出结果
        printf("%lld\n", fn[n]);
    }


    return 0;
}


转载于:https://www.cnblogs.com/tigerisland/p/7564649.html


http://www.niftyadmin.cn/n/3013968.html

相关文章

高手传授十八般CSS技巧

一、使用css缩写  使用缩写可以帮助减少你CSS文件的大小&#xff0c;更加容易阅读。css缩写的主要规则请参看《常用css缩写语法总结》&#xff0c;这里就不展开描述。 二、明确定义单位&#xff0c;除非值为0  忘记定义尺寸的单位是CSS新手普遍的错误。在HTML中你可以只写w…

Redis安装

准备安装包 /opt/redis-3.0.6.tar.gz解压安装 安装依赖&#xff1a; yum install tcl编译安装&#xff1a; cd /opt tar zxvf redis-3.0.6.tar.gz cd redis-3.0.6 make PREFIX/opt/yliyun/redis install创建日志目录&#xff1a; mkdir -pv /data/yliyun/logs/redisRedis配置&a…

Java 学习笔记(实用篇) 获取当前类的与当前工程的路径

我们在一个类里如何获取到当前类的路径&#xff0c;又如何获取当前工程的路径&#xff1f;话不多说&#xff0c;上代码&#xff0c;自己看 1 package com.chavez.demo; 2 3 public class SimpleDemo { 4 public static void main(String[] args){ 5 String xmlpat…

集中管理系统--puppet

puppet 是一种Linux、Unix、Windows平台的集中配置管理系统,运维人员或者系统管理员可以通过使用 puppet 来处理所有的管理细节&#xff0c;是自动化运维的工具。puppet是为了让系统管理员可以相互交流和共享成熟的工具,避免重复的劳动.通过以下两个特性来实现这一目标:1.提供一…

工业RFID标签材料介绍,RFID标签有哪些制造工艺?

工业RFID标签材料和制造工艺都跟所应用的场景有很大的关系&#xff0c;根据应用环境的不同&#xff0c;对标签和制造工艺都有不同的要求&#xff0c;下面我们就着重为大家介绍一下&#xff0c;不同场景下对工业RFID标签材料和制造工艺的要求有哪些。 工业RFID标签材料介绍 随着…

DIV+CSS 高手也得看的15个CSS常识

1、不要使用过小的图片做背景平铺。这就是为何很多人都不用 1px 的原因&#xff0c;这才知晓。宽高 1px 的图片平铺出一个宽高 200px 的区域&#xff0c;需要 200*20040, 000 次&#xff0c;占用资源。 2、无边框。推荐的写法是 border:none;&#xff0c;哈哈&#xff0c;我一直…

[原]jQuery ListBox Plugin(ListBox插件)

转载请注明作者(think8848)和出处(http://think8848.cnblogs.com)。未经作者同意&#xff0c;请勿擅自修改本文内容。 这两天项目中要用到类似于ListBox的功能了&#xff0c;本以为有很多jQuery插件&#xff0c;没有想到的是&#xff0c;居然没有搜到好用的&#xff0c;咋办呢&…

asp文件上传和下载

ASP.NET实现上传文件前端界面十分简单&#xff0c;只是放一个file类型的<input>和一个按钮&#xff0c;并且为这个按钮添加点击事件&#xff08;btnUpLoad_Click&#xff09;&#xff0c;如下图&#xff1a;代码&#xff1a; [html] view plaincopy<input id"…