一、大水题

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
if(n % 9 == 0){
System.out.println(9);
}else{
System.out.println(n % 9);
}
}
}
运行结果

二、小q的数列

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
while (T-- > 0) {
long n = in.nextLong();
int cnt = 0;
long tmp = n;
// 手写统计二进制中1的个数
while (tmp > 0) {
cnt++;
tmp = tmp & (tmp - 1);
}
long first = (1L << cnt) - 1;
System.out.println(cnt + " " + first);
}
}
}
运行结果

三、括号匹配深度

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.next();
int cur = 0;
int maxDepth = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '(') {
cur++;
if (cur > maxDepth) {
maxDepth = cur;
}
} else {
cur--;
}
}
System.out.println(maxDepth);
}
}
运行结果

四、斐波那契数列

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int k = in.nextInt();
final int MOD = 1000000007;
if (k == 1 || k == 2) {
System.out.println(1);
return;
}
long a = 1, b = 1;
long ans = 0;
for (int i = 3; i <= k; i++) {
ans = (a + b) % MOD;
a = b;
b = ans;
}
System.out.println(ans);
}
}
运行结果

五、计算阶乘

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
final int MOD = 1000000007;
final int MAX = 1000000;
long[] fac = new long[MAX + 1];
fac[0] = 1;
for (int i = 1; i <= MAX; i++) {
fac[i] = fac[i - 1] * i % MOD;
}
int T = in.nextInt();
while (T-- > 0) {
int n = in.nextInt();
System.out.println(fac[n]);
}
}
}
运行结果
