[LUOGU1010]幂次方_任何正整数可以表示为3的幂的和或差-程序员宅基地

技术标签: 递归  数论-数学  

题目描述

任何一个正整数都可以用2的幂次方表示。例如

137=2^7+2^3+2^0         

同时约定方次用括号来表示,即a^b 可表示为a(b)。

由此可知,137可表示为:

2(7)+2(3)+2(0)

进一步:7= 2^2+2+2^0 (2^1用2表示)

3=2+2^0   

所以最后137可表示为:

2(2(2)+2+2(0))+2(2+2(0))+2(0)

又如:

1315=2^10 +2^8 +2^5 +2+1

所以1315最后可表示为:

2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

输入输出格式

输入格式:
一个正整数n(n≤20000)。

输出格式:
符合约定的n的0,2表示(在表示中不能有空格)

输入输出样例

输入样例#1:
1315
输出样例#1
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

挺水的,用快速幂转换一下加几个特判就行啦

#include<bits/stdc++.h>
using namespace std;
int n; 
int solve(int x)
{
    int a[20]={
   0},mx=0;
    while(x)
    {
        if(x&1)
            a[mx]=1;
        mx++;
        x>>=1;
    }
    mx--;
    for(int i=mx;i>=0;i--)
    {
        if(a[i])
        {
            if(i!=mx)
                printf("+");
            printf("2");
            if(i!=1)
            {
                printf("(");
                if(i==0)
                    printf("0");
                else if(i==2)
                    printf("2");
                else
                    solve(i);
                printf(")");
            }
        }
    }
}
int main()
{
    scanf("%d",&n);
    solve(n);
    return 0;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/charactr/article/details/78819372

智能推荐

【openlisde报错】ModuleNotFoundError: Couldn‘t locate OpenSlide DLL. Did you call os.add_dll_directory_modulenotfounderror: couldn't locate openslide dll-程序员宅基地

文章浏览阅读1.5k次,点赞4次,收藏11次。openslide安装,python3.7以上报错解决方法。ModuleNotFoundError: Couldn't locate OpenSlide DLL. Did you call os.add_dll_directory()?_modulenotfounderror: couldn't locate openslide dll. did you call os.add_dll_

VS19下载和安装opencv_vspopencv下载-程序员宅基地

文章浏览阅读433次。VS19下载和安装opencv文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言opencv 是一个开源的视觉处理库,对图像处理非常友好 ,在这里记录一下opencv的配置过程一、opencv下载下载地址:opencv4.5.2版本等待几秒中,跳出下载窗口二、opencv配置1、配置环境变量此电脑====属性==高级系统设置===环境变量==path ==编辑==新建===浏览(找到..._vspopencv下载

mcv 架构_俄语的AJAX-MCV-程序员宅基地

文章浏览阅读153次。mcv 架构Boris of http://www.ajaxplanet.ru/ has published a translation of my article on the little AJAX/MVC framework I came up with, this is trully flattering, thanks a lot! http://www.ajaxplanet.ru/的..._ajax俄语意思

Java关于时间分割工具类实现_java时间段 固定间隔拆分-程序员宅基地

文章浏览阅读3k次。时间分割算法,时间切分工具_java时间段 固定间隔拆分

Spring Cloud集成XXL-job以及简单封装_springcloud整合xxl-job-程序员宅基地

文章浏览阅读7.4k次,点赞2次,收藏11次。说到分布式定时任务,第一反应还是Quartz,毕竟是开源定时任务的大佬。相对来说也比较熟悉,是通过操作API的方式来进行操作。但是今天我要介绍的是在国内的大佬在Quartz上面增强的的一个分布式定时任务框架:XXL-Job。至于为啥叫这个名字,是因为作者名字叫许雪里。项目的地址:https://gitee.com/xuxueli0323/xxl-job下面是大佬提供的Quartz和XX..._springcloud整合xxl-job

如何读懂一本书?-程序员宅基地

文章浏览阅读1.3k次。最近,听了樊登老师讲解了他自己写的一本书,《读懂一本书》,收获很大。书里的内容主要分为三部分。一、关于选书TIPS原则:Tools工具(有一套完整的方法);Ideas理念(有新的发现或者想法);Proacticablity实用性(可应用于日常生活);Scientificity科学性(有严谨的验证过程);怎么买书:出版机构背景;学术背景的作者;严肃认真的推荐人;好书中推荐的好...

随便推点

Macbook pro/air 2013 late -2014 使用转接卡更换NVME SSD休眠不醒问题的解决办法_mac 固件rom 478休眠唤醒-程序员宅基地

文章浏览阅读5.2w次,点赞26次,收藏93次。、、1. 手上512GMBP 2013 late差不多满了,因为穷,所以在淘宝上买了一个NVME转Macbookpcie,然后再买一个NVME 2T的硬盘2. NVME因为需要最新的Firmware Rom支持,所以必须使用原装的硬盘(必须原装)安装Mac14以上,我安装了14.5.要不然识别不出来新安装的NVME硬盘3. 买之前就知道是会有休眠问题的,问了卖家推荐了一些型号说不..._mac 固件rom 478休眠唤醒

麻省理工学院(MIT)研究生学习指导_麻省理工学院新能源发电技术研究生课程-程序员宅基地

文章浏览阅读564次。怎样做研究生本文的主旨是解释如何做研究。我们提供的这些建议,对于研究本身(阅读、写作和程序设计)、理解研究过程以及开始研究(方法论、选题、选导师和情感因素),都是极具价值的。简介这是什么?并没有什么神丹妙药可以保证在研究中取得成功,本文只是列举了一些可能会对研究有所帮助的非正式意见。目标读者是谁?本文主要是为新入学的研究生而写。如何使用?要精读完本文,太..._麻省理工学院新能源发电技术研究生课程

Spring提供5种标准的事件 / Spring支持的几种bean的作用域 / @Autowired和@Resource之间的区别 / @Qualifier 注解有什么作用_contextstopevent时bean-程序员宅基地

文章浏览阅读955次,点赞3次,收藏3次。Spring 提供5种标准的事件上下文更新事件(ContextRefreshedEvent):在调用ConfigurableApplicationContext接口中的refresh()方法时被触发。上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext的Start()方法开始/重新开始容器时触发该事件。..._contextstopevent时bean

【译】x86程序员手册30-8.2 I/O指令-程序员宅基地

文章浏览阅读225次。8.2 I/O InstructionsI/O指令The I/O instructions of the 80386 provide access to the processor's I/O ports for the transfer of data to and from peripheral devices. These instructions have as one ope..._i/o ports are addressed in the same manner as memory locations. even address

第一阶段知识总结及问题-程序员宅基地

文章浏览阅读819次。问题总结:测试用例需求覆盖考虑不全面,测试用设计方法使用不熟练。思维能力薄弱,分析软件需求不全面。1.知识总结1.1软件工程要点1.1.1软件的概念及分类软件最初的概念就是就是指程序,随着时代发展,软件就是指文档、程序和数据。 当运行时,能够提供所要求的功能和性能的指令或计算机程序集合。

基于jQuery实现的右下角消息提示框MsgBox_jquery msgbox-程序员宅基地

文章浏览阅读2.8k次。最近对右下角的消息提示框进行了封装,有需要的可以拿来看看效果如何。下面开始贴上代码,并且进行必要的说明。首先是css样式,如下所示._f_r { z-index: 1050; position: fixed; font-size: 12px; text-align: left; clear: both; border-radius: 5px; width: 200px; h_jquery msgbox

推荐文章

热门文章

相关标签