个人笔记: 努力奋斗-Li亚Q
个人笔记: 努力奋斗-Li亚Q
算法基础
1.打印整数二进制
public static void printBinary(int num) {
int count = 32;
for (int i = count - 1; i >= 0; i--) {
System.out.print((num & (1<<i)) == 0 ? "0": "1");
}
System.out.println();
}
public static void main(String[] args) {
int num = 1;
printBinary(1);
printBinary(2);
printBinary(3);
printBinary(4);
}
结果:
00000000000000000000000000000001
00000000000000000000000000000010
00000000000000000000000000000011
00000000000000000000000000000100
public static void main(String[] args) {
printBinary(2);
printBinary(4);
printBinary(8);
printBinary(16);
printBinary(32);
}
结果:
00000000000000000000000000000010
00000000000000000000000000000100
00000000000000000000000000001000
00000000000000000000000000010000
00000000000000000000000000100000
2.阶乘求和
public static Long getFactorial(int num) {
if (num <= 0) {
return 0L;
}
long result = 1;
for (int i = 1; i <= num; i++) {
result *= i;
}
return result;
}
public static void main(String[] args) {
System.out.println(getFactorial(1));
System.out.println(getFactorial(2));
System.out.println(getFactorial(3));
System.out.println(getFactorial(4));
System.out.println(getFactorial(5));
}
结果:
1
2
6
24
120
public static Long sumF(int num) {
long sum = 0;
if (num <= 0) {
return sum;
}
for (int i = 1; i <= num; i++) {
sum += getFactorial(i);
}
return sum;
}
public static void main(String[] args) {
System.out.println(sumF(1));
System.out.println(sumF(2));
System.out.println(sumF(3));
System.out.println(sumF(4));
System.out.println(sumF(5));
}
结果:
1
3
9
33
153
个人笔记: 努力奋斗-Li亚Q