算法训练 2的次幂表示
2023-09-11 14:20:51 时间
问题描述
任何一个正整数都可以用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)
将这种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)
提示
用递归实现会比较简单,可以一边递归一边输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner (System.in);
int n=sc.nextInt();
fun(n);
}
public static void fun(int n){
int count=0;
int num=0;
int temp=0;
int[] a=new int[20];
while(n!=0){
temp=n%2;
if(temp==1){
a[num++]=count;
}
count++;
n=n/2;
}
for(int i=num-1;i>=0;i--){
if(a[i]==0){
System.out.print("2(0)");
}else if(a[i]==1){
System.out.print("2");
}else{
System.out.print("2(");
fun(a[i]);
System.out.print(")");
}
if(i!=0){
System.out.print("+");}
}
}
}
![](https://img-blog.csdnimg.cn/20200308233718986.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0N6aGVueWE=,size_16,color_FFFFFF,t_70)
相关文章
- 计算机等级考试二级C语言程序设计专项训练题——程序修改题(一)
- 预训练模型之Huawei Nezha
- [DeeplearningAI笔记]第三章2.4-2.6不匹配的训练和开发/测试数据
- 一个中等规模的七段数码数据库以及利用它训练的识别网络
- Baum-Welch算法(EM算法)对HMM模型的训练
- Centerfusion算法环境配置及模型训练
- ELECTRA中文预训练模型开源,性能依旧媲美BERT
- 使用自己的数据集训练GoogLenet InceptionNet V1 V2 V3模型(TensorFlow)
- 使用gensim训练中文语料word2vec
- 训练简单小游戏的强化学习工具箱
- 原生JavaScript进阶训练---重写call方法
- 【转载】 训练深度神经网络失败的罪魁祸首不是梯度消失,而是退化
- 机器学习——“防干扰训练”《全新算法助机器学习抵抗干扰》
- 试题 算法训练 N皇后问题(明确清晰)
- **试题 算法训练 石子游戏**
- 算法训练 区间k大数查询
- 算法训练 Torry的困惑(基本型)
- 算法训练 完数(vip试题)
- 算法训练 友好数(VIP试题)
- 算法训练 出现次数最多的整数
- 算法训练 矩阵乘法
- 蓝桥杯 之 算法训练 动态数组使用
- 蓝桥杯 之 算法训练 最大最小公倍数
- 04-05组合问题_算法训练
- 深度学习入门之模型训练到移植使用全过程
- XGBoost数据训练小例子
- 算法训练 2的次幂表示(递归)
- 算法训练 数字三角形(DP)
- tensorflow如何用gpu训练?