java 蓝桥杯 幂方分解
来源:互联网 发布:qt4 gui编程 编辑:程序博客网 时间:2024/05/21 14:06
问题描述
任何一个正整数都可以用2的幂次方表示。例如:
137=27+23+20
同时约定方次用括号来表示,即ab 可表示为a(b)。
由此可知,137可表示为:
2(7)+2(3)+2(0)
进一步:7= 22+2+20 (21用2表示)
3=2+20
所以最后137可表示为:
2(2(2)+2+2(0))+2(2+2(0))+2(0)
又如:
1315=210 +28 +25 +2+1
所以1315最后可表示为:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
137=27+23+20
同时约定方次用括号来表示,即ab 可表示为a(b)。
由此可知,137可表示为:
2(7)+2(3)+2(0)
进一步:7= 22+2+20 (21用2表示)
3=2+20
所以最后137可表示为:
2(2(2)+2+2(0))+2(2+2(0))+2(0)
又如:
1315=210 +28 +25 +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表示(在表示中不能有空格)
import java.util.*;public class Main{public static void main(String args[]){Scanner cn=new Scanner (System.in);int n=cn.nextInt();System.out.println(kk(n));}public static String kk(int n){List<Integer> list=new LinkedList<Integer>(); //放置余数String str=new String("");int t,u=n;while(true){t=u%2;u=u/2;list.add(t);if(u==0)break;}int count=0;for(int i=list.size()-1;i>=0;i--){if(list.get(i)==1){if(count>0)str=str+"+"; //控制str顶端第一次没有+号 if(i==1)str=str+2;if(i==0)str=str+"2(0)";if(i!=0&&i!=1)str=str+"2("+kk(i)+")";//进行递归求解count=1;}}return str; }}
0 0
- java 蓝桥杯 幂方分解
- 蓝桥杯-幂方分解-递归-Java
- 蓝桥杯 幂方分解
- 蓝桥杯 算法训练 幂方分解
- 蓝桥杯 幂方分解(递归)
- 幂方分解
- 幂方分解
- 幂方分解 (vip)
- loj幂方分解
- 幂方分解
- 幂方分解
- 幂方分解(递归)
- [ALGO-12] 幂方分解
- Tsinsen A1116 幂方分解
- 算法训练 幂方分解
- 算法训练 幂方分解
- 算法训练 幂方分解
- 算法训练 幂方分解
- 已经声明过变量,依然报 C2065:未声明的标识符错误 解决办法
- Ubuntu 14.04下编译WebRTC
- Shader简单入门
- exports和module.exports
- linux-Centos-7-64位:4、 mysql安装
- java 蓝桥杯 幂方分解
- 半年总结
- WebRTC学习资料大全
- PAT A1044. Shopping in Mars (25)
- 常见的几种进程调度算法
- Hadoop java实现读取hdfs文件
- 华为OJ:合并表记录
- bzoj 3098: Hash Killer II (生日攻击)
- 【转】深入源码探索 ReactNative 通信机制