http://www.fjutacm.com/Problem.jsp?pid=2343

题意:将一个整数拆成二的次方形式,如

137=27+23+20。同时约定次方数用括号来表示,即ab 可表示为a(b)。

由此可知,137可表示为:2^7 + 2^3 + 2^0

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

进一步:7= 22+2+20   (21用2表示,因为垃圾佬不喜欢“1”)

3=2+20

所以最后137可表示为:

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

最后输出这个表示

题解:一眼看去肯定是个递归。 若要分解 X,则需要找到 X所能分解的最大的2的幂方数,最后这个X一定会分解成2(2)或 2或

2(0),所以需要判断 X的二进制形式最高位的1的位置。然后就是一个递归

/***                                                                    *            .,,       .,:;;iiiiiiiii;;:,,.     .,,                   *          rGB##HS,.;iirrrrriiiiiiiiiirrrrri;,s&##MAS,                *         r5s;:r3AH5iiiii;;;;;;;;;;;;;;;;iiirXHGSsiih1,               *            .;i;;s91;;;;;;::::::::::::;;;;iS5;;;ii:                  *          :rsriii;;r::::::::::::::::::::::;;,;;iiirsi,               *       .,iri;;::::;;;;;;::,,,,,,,,,,,,,..,,;;;;;;;;iiri,,.           *    ,9BM&,WA了活该       .,:;;:,,,,,,,,,,,hXA8:   T了天命..,,,.       *   ,;&@@#r:;;;;;::::,,.   ,r,,,,,,,,,,iA@@@s,,:::;;;::,,.   .;.      *    :ih1iii;;;;;::::;;;;;;;:,,,,,,,,,,;i55r;;;;;;;;;iiirrrr,..       *   .ir;;iiiiiiiiii;;;;::::::,,,,,,,:::::,,:;;;iiiiiiiiiiiiri         *   iriiiiiiiiiiiiiiii;;;::::::::::::::::;;;iiiiiiiiiiiiiiiir;        *  ,riii;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;;;;;;;;iiir.       *  iri;;;::::,,,,,,,,,,:::::::::::::::::::::::::,::,,::::;;iir:       * .rii;;::::,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,::::;;iri       * ,rii;;;::,,,,,,,,,,,,,:::::::::::,:::::,,,,,,,,,,,,,:::;;;iir.      * ,rii;;i::,,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,,::i;;iir.      * ,rii;;r::,,,,,,,,,,,,,:,:::::,:,:::::::,,,,,,,,,,,,,::;r;;iir.      * .rii;;rr,:,,,,,,,,,,,,,,:::::::::::::::,,,,,,,,,,,,,:,si;;iri       *  ;rii;:1i,,,,,,,,,,,,,,,,,,:::::::::,,,,,,,,,,,,,,,:,ss:;iir:       *  .rii;;;5r,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,sh:;;iri        *   ;rii;:;51,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.:hh:;;iir,        *    irii;::hSr,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,sSs:;;iir:         *     irii;;:iSSs:.,,,,,,,,,,,,,,,,,,,,,,,,,,,..:135;:;;iir:          *      ;rii;;:,r535r:...,,,,,,,,,,,,,,,,,,..,;sS35i,;;iirr:           *       :rrii;;:,;1S3Shs;:,............,:is533Ss:,;;;iiri,            *        .;rrii;;;:,;rhS393S55hh11hh5S3393Shr:,:;;;iirr:              *          .;rriii;;;::,:;is1h555555h1si;:,::;;;iirri:.               *            .:irrrii;;;;;:::,,,,,,,,:::;;;;iiirrr;,                  *               .:irrrriiiiii;;;;;;;;iiiiiirrrr;,.                    *                  .,:;iirrrrrrrrrrrrrrrrri;:.                        *                        ..,:::;;;;:::,,.                             */
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<stdio.h>
#include<string.h>
#include<queue>
#include<cmath>
#include<map>
#include<set>
#include<vector>
using namespace std;
#define inf 0x3f3f3f3f
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define mem(a,b) memset(a,b,sizeof(a));
#define lowbit(x)  x&-x;
typedef long long ll;
typedef unsigned long long ull;
const double eps = 1e-6;
const int maxn = 1e5+5;
const int mod = 1e9+7;
inline int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
int n;
int f(int m){int ans = 0;int a = 1;while(a < m){ans++;a <<= 1;}if(a>m)return ans-1;elsereturn ans;
}
void print(int x){if(x == 0){//printf("0");return;}int res = f(x);int xx = 1<<res;x -= xx;//cout<<res<<endl;if(x){if(res == 1) printf("2+");else if(res == 0 || res == 2) printf("2(%d)+",res);}else{if(res == 1) printf("2");else if(res == 0 || res == 2) printf("2(%d)",res);}if(res > 2){printf("2(");print(res);if(x)printf(")+");elseprintf(")");}print(x);
}
int main() {while(cin>>n){if(n == 0){printf("0\n");continue;}print(n);printf("\n");}
}

FJUT 2343 递归相关推荐

  1. 算法设计思想(5)— 递归法

    1. 递归概念 递归 Recursion是指在函数的定义中使用函数自身的方法,直观上来看,就是某个函数自己调用自己. ​ 递归有两层含义: 递归问题必须可以分解为若干个规模较小.与原问题形式相同的子问 ...

  2. 判断某数组是不是二叉树的后序遍历序列 python递归与非递归解法

    python 递归 class Solution:def VerifySquenceOfBST(self, sequence):# write code hereif len(sequence) &l ...

  3. 翻转二叉树 c语言实现 递归 栈 队列

    前言 题目比较好理解,就是翻转二叉树 代码 c语言实现 #include<stdio.h> #include<stdlib.h> #include<string.h> ...

  4. 快速排序的递归和非递归实现 c语言版本

    代码 挖坑法 解释 选取一个关键字(key)作为枢轴,一般取整组记录的第一个数/最后一个,这里采用选取序列第一个数为枢轴,也是初始的坑位. 设置两个变量i = l;j = r;其中l = 0, r = ...

  5. LeetCode 10. Regular Expression Matching python特性、动态规划、递归

    前言 本文主要提供三种不同的解法,分别是利用python的特性.动态规划.递归方法解决这个问题 使用python正则属性 import reclass Solution2:# @return a bo ...

  6. 迭代是人,递归是神(迭代与递归的总结:比较)

    https://www.cnblogs.com/Renyi-Fan/p/7708012.html 在计算机编程实现中有常常两种方法:一曰迭代(iterate):二曰递归(recursion). 从&q ...

  7. java锁(公平锁和非公平锁、可重入锁(又名递归锁)、自旋锁、独占锁(写)/共享锁(读)/互斥锁、读写锁)

    前言 本文对Java的一些锁的概念和实现做个整理,涉及:公平锁和非公平锁.可重入锁(又名递归锁).自旋锁.独占锁(写)/共享锁(读)/互斥锁.读写锁 公平锁和非公平锁 概念 公平锁是指多个线程按照申请 ...

  8. Mysql中的递归层次查询(父子查询,无限极查询)

    前言:最近面试的时候遇到公司要求只能用SQL来查询无限极的数据,不能用PHP程序做递归查询,现在分享方法. 下面给出一个function来完成的方法 下面是sql脚本,想要运行的直接赋值粘贴进数据库即 ...

  9. [递归]一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    这题是用C写的~ 在牛客上半天找不着ACM模式,练习模式里只有核心代码模式 这样用C语言编译器就不能自定义函数啊,不鸡肋吗??? 解决方法:在核心代码模式下用C++编译器(反正C++完全兼容C的不是吗 ...

最新文章

  1. 实用的bit 位操作
  2. ubuntu14.04下的NVIDIA Tesla K80显卡驱动的安装教程
  3. Nginx在开发中常用的基础命令
  4. 安装MAMP后的控制台访问mysql问题
  5. 读书印记 - 《创新者的解答》
  6. 关于概率算法的问题,不知道逻辑错在哪里,求debug
  7. AD19 add pins to nets错误_为什么我认为Rust的Result错误处理方式不如Exception
  8. Flask 发布 1.0 稳定版
  9. 数据库DBeaverEE 22.0.2
  10. 第11章 支撑向量机 SVM 学习笔记 下 高斯核函数RBF
  11. windows下yafu的下载及其安装
  12. 第八章:项目质量管理 - (8.0 项目质量管理是什么)
  13. 新西兰计算机预科学费,新西兰留学预科学费
  14. 用PyAV完成视频解码之后,如何完成视频分辨率的转换?
  15. Android APK瘦身之Android Studio Lint (代码审查)
  16. 别让抱怨毁了你的工作生活
  17. 单反相机和镜头 怎么样才可以吧身边的mm拍的很漂亮!!
  18. 介绍理想工作计算机 英语作文,理想工作的英语作文6篇
  19. 推动RISC-V拾级而上 赛昉科技发布两款高性能产品: JH7110多媒体处理器与VisionFive 2开发板
  20. 前端H5实现调用麦克风,录音功能

热门文章

  1. A-Level经济真题每期一练(54)
  2. MapReduce设计模式学习
  3. hdu 2851 Lode Runner
  4. [名词解释:竞业禁止]
  5. 仿网易云音乐鲸云音效-孤独星球
  6. 【Fix Bug】针对 Google Photos 返回的图片Uri,裁剪照片失败
  7. 三星手机不兼容畅天游诚2无人机软件的解决办法
  8. python画小猪乔治动画片全集_使用Python海龟画粉红小猪
  9. 【Codeforces Round #544 (Div. 3) F2. Spanning Tree with One Fixed Degree】DFS
  10. Java Web 文章管理系统(Jsp+Ajax+JDBC+MySql实现)