import java.util.ArrayList;import java.util.List;
public class Mi {
public static int calcn(int n){
int len = 32;//sizeof n * 8;
for(; len > 0;--len){
if(0 !=(n &(1<<(len-1)))){return len;}}return 0;}
public static List<Integer> calcPower(int A){
int n = calcn(A);
List<Integer> ret = new ArrayList<>();
for(int i = n - 1; i >= 0; --i){
if(!( 1 << i > A)){
ret.add(i);
A -=(1 << i);
if( A == 0){break;}}}return ret;}
public static void main(String[] args){
int saveA = 114;
List<Integer> ret = calcPower(saveA);
System.out.println(saveA + " = ");
for(int index = ret.size() - 1; index > 0; --index ){
System.out.print("2^" + ret.get(index) + " + ");}
System.out.print("2^" + ret.get(0));
System.out.println();
int sum= 0;
for(Integer integer : ret){sum +=(1 << integer);}
System.out.println(sum);}}
import java.util.ArrayList;import java.util.List;public class Mi { public static int calcn(int n){ int len = 32;//sizeof n * 8; for(; len > 0;--len){ if(0 != (n & (1<< (len-1)))){ return len;