自我标记:进制转换
本次的四题JAVA,三题都是关于进制转换的,而JAVA中自带了很多关于进制转换的、好用的、可调用的方法,详情请前往:Java各类型数的进制转换
垃圾小玲的题解
UVA446 Kibbles “n” Bits “n” Bits “n” Bits
插一点题外话噢。
上次在机房看见有一个小改改,打开CSND,找了一篇博客,直接滑到代码区,连编译器都不开,
直接复制到提交页面,然后把一些注释啊,“转载请联系作者”啊之类的话,删了,就提交。
有种咽了一大口猪油的感觉。
UVA的题,百度上搜是搜不到JAVA版的,所以很大概率就是贴了我的代码上去吧。
分享代码是想大家一起进步,我并不想因为我,让你贪了一时之快,不会写可以慢慢学,
也可以问我噢,找得到我的博客,那你应该也找得到我。
如果这开头的一大段话你看了,那么恭喜你,CE问题可以得到解决了,你把第三行的Change改成
Main就行了,这个原理,在置顶的那篇博客里说过了。
如果这开头的一大段话你没看,那么恭喜你,真真正正地可以获得一个“研究非文件传输的JAVA代码
如何在东华土豆OJ上运行”的课题。
希望大家共同进步。
import java.util.Scanner;
import java.util.*;
public class Change{
public static void main(String[] args) {
int cas;
Scanner reader = new Scanner(System.in);
cas = reader.nextInt();
while (cas > 0) {
cas--;
String s1 = reader.next();
String op = reader.next();// 读入操作符噢
String s2 = reader.next();
int n1 = Integer.valueOf(s1, 16);// 16进制的s1转成10进制
int n2 = Integer.valueOf(s2, 16);
int sum;
if ("+".equals(op))
sum = n1 + n2;
else
sum = n1 - n2;
String s3 = Integer.toBinaryString(n1);
String s4 = Integer.toBinaryString(n2);
// 格式控制
int len1 = s3.length();
int len2 = s4.length();
while (len1 < 13) {
s3 = '0' + s3;
len1++;
}
while (len2 < 13) {
s4 = '0' + s4;
len2++;
}
System.out.println(s3 + ' ' + op + ' ' + s4 + " = " + sum);
}
}
}