关注
我的是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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
05-03 11:27
Johns Hopkins University 算法工程师 点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试问题记录 #
61449次浏览 889人参与
# 硬件人的简历怎么写 #
254666次浏览 2886人参与
# 京东TGT #
47874次浏览 175人参与
# 你遇到过哪些神仙同事 #
72083次浏览 643人参与
# 我的2024小目标 #
58430次浏览 392人参与
# 工作中,你有没有遇到非常爱骂人的领导? #
17329次浏览 128人参与
# 百度工作体验 #
204976次浏览 1907人参与
# 实习生应该准时下班吗 #
201799次浏览 1315人参与
# 上班到公司第一件事做什么? #
38005次浏览 347人参与
# 国企和大厂硬件兄弟怎么选? #
120236次浏览 1656人参与
# 工作一周年分享 #
19307次浏览 111人参与
# 没有合适的工作,你会先找个干着,还是考公考研 #
104545次浏览 1077人参与
# 面试吐槽bot #
14524次浏览 88人参与
# 互联网行业现在还值得去吗 #
6504次浏览 42人参与
# 面试经验谈 #
39444次浏览 513人参与
# 拼多多工作体验 #
16830次浏览 152人参与
# 入职第五天,你被拉进了几个工作群 #
18069次浏览 80人参与
# 假如我穿越到了妈妈的18岁 #
6451次浏览 43人参与
# 国企vs私企,你更想去? #
217776次浏览 2073人参与
# 你们的毕业论文什么进度了 #
999487次浏览 9398人参与
# 机械人,你的第一份感谢信是谁给的 #
26946次浏览 296人参与