求约数
不考虑效率 暴力求解
注:约数不包含自身且大于1 (1也不是)
static void fun(int num){
if(num<=1) System.out.printf("%d no\n",num);
for(int i=1;i<num;i++){
if(num%i==0) {
System.out.printf("%d yes\n",i);
}
}
}
优化: 由于当n/a=b时,a和b都是n的约数,即约数总是成对出现,可以在一次循环中同时找到i和n/i两个约数,只需要循环n/i次就能找到所有约数。
static void fun(int num){
if(num==1) System.out.println("no");;
int sum=0;
for(int i=1;i<=num/i;i++){
if(num%i==0) {
System.out.printf("%d yes",i);
if((num/i)!=i && (num/i)!=num){
System.out.printf("%d also yes",(num/i));
}
}
}
}
Java补码计算
我们以可直接用Java提供的API
int num = -1;
String binaryComplement = Integer.toBinaryString(num);
System.out.println("二进制补码:" + binaryComplement);

被折叠的 条评论
为什么被折叠?



