[ALGO-12] 幂方分解
来源:互联网 发布:好用的修容产品知乎 编辑:程序博客网 时间:2024/05/17 23:09
算法训练 幂方分解
时间限制:1.0s 内存限制:256.0MB
问题描述
任何一个正整数都可以用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.Scanner;public class Main {static int[] nums = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048,4096, 8192, 16384 };public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (scanner.hasNext()) {int n = scanner.nextInt();showResult(n, 14);System.out.println();}}/** * * @param n * 数值 * @param index * nums数组的下标 */private static void showResult(int n, int index) {if (index == 0) {System.out.print("0");return;}if (index == 1) {System.out.print("2(0)");return;}while (index >= 0) {if (n - nums[index] >= 0) {if (index != 1) {System.out.print("2(");showResult(index, index);System.out.print(")");} else {System.out.print("2");}n -= nums[index];if (n != 0) {System.out.print("+");showResult(n, index);return;}}index--;}}}
0 0
- [ALGO-12] 幂方分解
- 蓝桥-ALGO-12-幂方分解
- 幂方分解
- 幂方分解
- 蓝桥杯 幂方分解
- 幂方分解 (vip)
- loj幂方分解
- 幂方分解
- 幂方分解
- 幂方分解(递归)
- Tsinsen A1116 幂方分解
- 算法训练 幂方分解
- 算法训练 幂方分解
- java 蓝桥杯 幂方分解
- 算法训练 幂方分解
- 算法训练 幂方分解
- 算法训练 幂方分解
- noip1998 幂方分解 (模拟)
- JS创建数组
- 驱动学习第2天 之 最简单的字符设备驱动testchr
- 郑州存量房还够卖半年 放松限购的可能性不大
- 李代沫吸毒案宣判:获刑九个月 罚金两千
- delphi数组地址和VC的区别
- [ALGO-12] 幂方分解
- JS获取jQuery获取当前<input type="text" />的value--通过测试了
- 加密web.config中的邮件配置mailSettings
- android软件更新
- 今天真是好天气啊
- java中的各种加密方式详讲
- Apache2.4.9编译event错误解决过程
- 今天发生的事有点多啊
- 监控组合ganglia和nagio安装步骤