算法训练 2的次幂表示  时间限制:1.0s   内存限制:512.0MB问题描述任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。将这种2进制表示写成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)输入格式正整数(1<=n<=20000)输出格式符合约定的n的0,2表示(在表示中不能有空格)样例输入137样例输出2(2(2)+2+2(0))+2(2+2(0))+2(0)样例输入1315样例输出2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)提示用递归实现会比较简单,可以一边递归一边输出
    package com.sihai.advance;import java.util.*;    import java.math.*;  /* * 1、先把一个整数变成二进制字符串,确定二进制1的个数N,然后按照二进制幂指数按照特定格式输出, * 2、使用二进制字符串的从左到右数的第一个1 * 3、如果幂指数k为0或者2,输出2(k), * 4、如果幂指数为1输出2 * 5、如果幂指数大于2,输出2(,然后调用自身传递k,最后输出) * 6、如果1的用的次数小于N,输出+,否则不输出 */  public class Main{  private static int find_one(String str_bin_val)  {  int count=0;  for(int k=0;k<str_bin_val.length();k++)  {  if(str_bin_val.charAt(k)=='1')  count++;  }  return count;  }  private static void bin_print(int a)  {  String str_bin=Integer.toBinaryString(a);  int one_count=0;  int one_sum=find_one(str_bin);  int len=str_bin.length();  int k=len-1;  for(int i=0;i<len;i++)  {  if(str_bin.charAt(i)=='1')  {  if(k==0||k==2)  {  System.out.print("2(");  System.out.print(k);  System.out.print(")");  }  else if (k==1)  {  System.out.print("2");  }  else  {  System.out.print("2(");  bin_print(k);//递归调用  System.out.print(")");  }  one_count++;  if(one_count<one_sum)//最后的不应该输出+号的  System.out.print("+");  }  k--;  }  }  public static void main(String[] args)  {  Scanner sc=new Scanner(System.in);  int src=sc.nextInt();  bin_print(src);  }  }  

蓝桥杯-2的次幂表示(java)相关推荐

  1. 标题 日期问题java蓝桥杯,日期类的使用(java)-蓝桥杯

    蓝桥杯日期问题常考,java提供了日期类很方便: //日历类 Calendar c = Calendar.getInstance(); // 获取实例化对象 Date date =c.getTime( ...

  2. 第十二届蓝桥杯大赛软件赛省赛 Java 大学 B 组(2021年4月18日)

    第十二届蓝桥杯大赛软件赛省赛 Java 大学 B 组第一场 下载原题PDF 欢迎评论区留下答案讨论!!! 试题 A: ASC 本题总分:5 分 [问题描述] 已知大写字母 A 的 ASCII 码为 6 ...

  3. 第十届蓝桥杯大赛软件赛省赛——Java大学A组

    第十届蓝桥杯大赛软件赛省赛--Java大学A组 试题A:平方和 public class TestA {static boolean has2019(int number) {String strin ...

  4. 第十三届蓝桥杯大赛软件赛省赛 Java 研究生组

    第十三届蓝桥杯大赛软件赛省赛 Java 研究生组 [考生须知] 考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试 题. 考试时间为 4 小时.考试期间选手可浏览自己已经提交的答案,被浏 ...

  5. 蓝桥杯 试题 算法训练 筛选号码 Java

    蓝桥杯 试题 算法训练 筛选号码Java 算法训练 筛选号码 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3 ...

  6. 第十二届蓝桥杯大赛软件赛省赛Java 大学 C 组

    第十二届蓝桥杯大赛软件赛省赛Java 大学 C 组 试题 A: ASC 试题 B: 空间 试题 C: 卡片 试题 D: 相乘 试题 E: 路径 试题 F: 时间显示 试题 G: 最少砝码 试题 H: ...

  7. 蓝桥杯第十届省赛java组解析(灵能传输 四星难度,后缀表达式 两星难度)

    第一题太简单懒得复制题目了 答案是:490 第二题: 试题 B: 不同子串 本题总分:5 分 [问题描述] 一个字符串的非空子串是指字符串中长度至少为 1 的连续的一段字符组成 的串.例如,字符串aa ...

  8. 金蝉素数c语言,算法笔记_204:第四届蓝桥杯软件类决赛真题(Java语言C组)

    前言:以下代码仅供参考,若有错误欢迎指正哦~ 1好好学习 汤姆跟爷爷来中国旅游.一天,他帮助中国的小朋友贴标语.他负责贴的标语是分别写在四块红纸上的四个大字:"好.好.学.习".但 ...

  9. 蓝桥杯第七届省赛JAVA真题----压缩变换

    压缩变换 小明最近在研究压缩算法. 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比. 然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面 ...

  10. 蓝桥杯第六届国赛JAVA真题----切开字符串

    标题:切开字符串 Pear有一个字符串,不过他希望把它切成两段. 这是一个长度为N(<=10^5)的字符串. Pear希望选择一个位置,把字符串不重复不遗漏地切成两段,长度分别是t和N-t(这两 ...

最新文章

  1. JSONP跨域的原理解析及其实现介绍
  2. LinkedIn联合创始人:硅谷也就700万人,为什么能创建这么多瞩目的公司 ?
  3. 收发一体超声波测距离传感器模块_一文了解超声波液位计
  4. 转:设置Eclipse中的tab键为4个空格的完整方法
  5. yaf php源码,PHP-Yaf执行流程-源码分析
  6. python3集合_Python3 集合
  7. Spark的ShuffleManager
  8. 最小生成树(Prim算法+Kruskal算法)
  9. Anaconda中安装pygame
  10. 常用数据库的字段类型及大小
  11. 14道Python基础练习题(附答案)
  12. 测试游戏帧率电脑温度的软件,游戏中显示帧数和温度方法_游戏画面中实时显示FPS帧数温度技巧...
  13. 一文看懂AutoML
  14. 一张图片切割成九宫格,微信朋友圈发布
  15. Error: watch task has to be a function(optionally generated by using gulp.parallel or gulp. series)
  16. 使用Trinity 软件进行拼接(无参转录组)
  17. 【Java】——2的次幂表示(C和Java实现)
  18. Cisco 3850交换机保存配置后重启配置文件丢失
  19. 这是一款走心的最新测评:英伟达史上最便宜AI硬件抗造不?
  20. Porting:linux内核的模块化、根文件系统的制作和自动挂载

热门文章

  1. C++ Primer 5th笔记(chap 16 模板和泛型编程)模板特例化
  2. Hyperledger Fabric 智能合约实战 (5) sdk node软件安装
  3. Hgame 2022 Answer‘s Windows
  4. Harbor2.2.1配置(trivy扫描器、镜像签名)
  5. 深度学习arm MMU一篇就够了
  6. [trustzone]-ARMV8的aarch64和aarch32环境下ELx级别的理解
  7. Elementui icon图标不显示
  8. Fabric--CA 应用与配置
  9. c++11 auto 类型说明符详解
  10. pwndbg用docker实现,进行题目分析