关注
我的是java版本的,不过我认为还不是最优化的
public static void main(String [] args)
{
Scanner in = new Scanner(System.in);
while(in.hasNext())
{
int n = in.nextInt();
if(n == 0)
{
System.out.println(n);
continue;
}
else if(n<0)
{
System.out.println("-("+DecimaltoBinary(-n)+")");
continue;
}
else
System.out.println(DecimaltoBinary(n));
}
}
public static String DecimaltoBinary(int num)
{
StringBuilder temp = new StringBuilder();
String result = "";
while(num>0)
{
temp.append(num%2);
num /= 2;
}
char [] a = temp.reverse().toString().toCharArray();
int len = a.length;
int j = len-1;
if(a[0] == '1')
{
result += "2("+j+")";
int k = j;
if(k>2)
{
result = result.replaceFirst(k+"",DecimaltoBinary(k));
k--;
}
}
j--;
for(int i = 1;i<len;i++)
{
if(a[i] == '1')
{
result += "+2("+j+")";
int k = j;
while(k>2)
{
result = result.replace(k+"",DecimaltoBinary(k));
k--;
}
}
j--;
}
result = result.replace("2(1)", "2");
return result;
}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届春招投递记录 #
19067次浏览 138人参与
# 米哈游笔试 #
708506次浏览 1268人参与
# 我的求职总结 #
490143次浏览 6896人参与
# 你遇到过哪些神仙同事 #
144952次浏览 768人参与
# 27届实习投递记录 #
89444次浏览 945人参与
# 产品实习,你更倾向大公司or小公司 #
230204次浏览 2150人参与
# 金融银行求职进展汇总 #
363232次浏览 1979人参与
# 美团秋招笔试 #
219332次浏览 1198人参与
# 25届网易互娱暑实进度 #
110355次浏览 805人参与
# 我是XXX,请攻击我最薄弱的地方 #
98461次浏览 650人参与
# 拼多多工作体验 #
63298次浏览 439人参与
# 选择和努力,哪个更重要? #
215878次浏览 1586人参与
# 国庆前的秋招小结 #
301898次浏览 1755人参与
# 宁德时代求职进展汇总 #
188524次浏览 710人参与
# Vibe Coding 会干掉初级岗位吗? #
52391次浏览 336人参与
# 实习转正进行时 #
198204次浏览 1172人参与
# 职场吐槽大会 #
361892次浏览 2308人参与
# HR最不可信的一句话是__ #
37155次浏览 186人参与
# 牛油的搬砖plog #
208240次浏览 1337人参与
# 工作中哪个瞬间让你想离职 #
137245次浏览 810人参与
