第一题
请问在 1 到 2020 中,有多少个数既是 4 的整数倍,又是 6 的整数倍
答案:168
public class T3 {
static int count=0;
public static void main(String[] args) {
DFS(1,0);
System.out.println(count);
}
public static void DFS(int num,int n){
if(n==5){
count++;
return;
}
for(int i=num;i<10;i++){
DFS(i,n+1);
}
}
}
第二题
小明要用二进制来表示 1 到 10000 的所有整数,要求不同的整数用不同的二进制数表示,请问,为了表示 1 到 10000 的所有整数,至少需要多少个二进制位?
答案:14 (用计算器按一下 数一下位数就行)
第三题
请问有多少个序列满足下面的条件:
序列的长度为 5。
序列中的每个数都是 1 到 10 之间的整数。
序列中后面的数大于等于前面的数。
答案:1287
解题方法:用的DFS遍历所有结果
public class T3 {
static int count=0;
public static void main(String[] args) {
DFS(1,0);
System.out.println(count);
}
public static void DFS(int num,int n){
if(n==5){
count++;
return;
}
for(int i=num;i<10;i++){
DFS(i,n+1);
}
}
}
第四题
一个无向图包含 2020 条边,如果图中没有自环和重边,请问最少包含多少个结点?
答案:65
用公式算 n个节点的无向图最多 有 n*(n-1)*2 条边,用边算节点就是解方程啦
第五题
两个字母之间的距离定义为它们在字母表中位置的距离。例如 A 和 C 的距离为2,L 和 Q 的距离为 5。对于一个字符串,我们称字符串中两两字符之间的距离之和为字符串的内部距离。例如:ZOO 的内部距离为 22,其中 Z 和 O 的距离为 11。请问,LANQIAO 的内部距离是多少?
答案:162
public static void main(String[] args) {
System.out.println(getLength("ZOO"));
}
public static int getLength(String str){
int ans=0;
int n=str.length();
int right=0;
while(right<n){
char r_ch=str.charAt(right);
for(int left=0;left<right;left++) {
char l_ch = str.charAt(left);
ans += Math.abs(r_ch - l_ch);
}
right++;
}
return ans;
}
}