DESKTOP-2IHO1NT_20200826-秦文亮
问题
1、孪生素数代码解析
public static void main(String[] args) {
boolean a;
int s = 2;
for (int i = 2; i < 1000; i++) {
a = false;
for (int j = 2; j <= i / 2; j++) {
if (i % j == 0) {
a = true;
}
}
if (a == false) {
if (i == s + 2) {
System.out.println(s + " " + i);
}
s = i;
}
}
}
1.1 对i/2的理解
已解决
if (i == s + 2) {
System.out.println(s + " " + i);
}
s = i;
1.2 对i赋值给s的理解。
已解决
2、十进制转二进制代码解析
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入:");
int i = s.nextInt();
String a = "";
if (i > 0) {
for (int x = i; x > 0; x /= 2) {
a = x % 2 + a;
}
System.out.println("0"+a);
} else if (i < 0) {
i = i * (-1);
for (int x = i; x > 0; x /= 2) {
a = x % 2 + a;
}
System.out.println("1"+a);
}
}
2.1求出了正数和负数的二进制。
思路
1.先判断这个数的正负,如果是正数就直接求二进制,用for循环先%2,再/2;直到除到的数为0结束。再进行倒叙输出,这时定义一个String类型的空变量,让%完的数加这个变量。然后循环输出,最后输出前面加上一个0,为符号位。
2.如果是负数先乘以(-1)让其变成整数然后求二进制,用for循环先%2,再/2;直到除到的数为0结束。再进行倒叙输出,这时定义一个String类型的空变量,让%完的数加这个变量。然后循环输出,最后输出前面加上一个1,为符号位。
吐槽
教室里面太闷热,导致上午一段时间一直不是清醒的,根本没有听懂。
算法题看着答案都看不懂,我是不是太笨了。害,无情哈拉少!
加油!!!
近期评论