第十届省赛 c++ B组 填空题
public class Main {
/*
这个题我们看作是一个26进制的转换,这里用1来代表字符A,用26来代表字符Z,我们使用余数短除法除以26进行计算,
把计算的结果从最下面的余数开始,按顺序读到最上面,就是们最后对应的字符串了。
*/
public static void main(String[] args) {
// 定义用于存储计算结果的数组
char[] arr = new char[100];
// 定义无符号整型变量的年号
int year = 2019;
// 定义用于记录循环次数和结果个数的变量 j
int j = -1;
// year 大于 26 时进行循环计算
while (year > 0) {
// 判断 year 是否为 26 的倍数
if (year % 26 != 0) {
// 将年份对 26 取余,计算结果存入 arr 数组,例如 'A' + (17 - 1) = 'Q',第 17 个字母为 Q
arr[++j] = (char) ('A' + (year % 26 - 1));
year = year / 26;
} else {
arr[++j] = 'Z';
year = year / 26 - 1;
}
}
// 逆序输出 arr
while (j >= 0) {
System.out.print(arr[j--]);
}
}
}
static long[] a = new long[20190324];
public static void main(String[] args) {
a[0] = 1;
a[1] = 1;
a[2] = 1;
for(int i = 3; i < 20190324 ;i++){
a[i] = (a[i-1] + a[i-2] + a[i-3]) % 10000;
//System.out.println(a[i]);
}
System.out.println(a[20190323]);
}
第十届省赛 c++ C组 填空题
int res = 0;
for(int i = 1; i <= 2019 ;i++){
int kk = i;
int k = i;
while(k > 0){
int g = k % 10;
if(g == 2 || g == 0 || g == 1 || g == 9){
res += kk;
break;
}
k /= 10;
}
}
System.out.println(res);
public static void main(String[] args) {
/*
模拟切割过程:2019 x 324,
首先切割324 x 324的矩形,有多少个?这就是2019对324求商,即2019/324=6个;
2019对324整除的余数75,剩余的矩形就是324 x 75了,再次按上述切割,有324/75=4个;
324%75=24,再对矩75 x 24切割,有75/24=3个;75%24=3,
剩下的矩形24 x 3,显然切成 3 x 3的正方形8个。
共6 + 4 + 3 +8 = 21个。
*/
int m = 2019, n = 324;
//int m=5, n=3;
int cnt = 0;
while (true) {
cnt += m / n;
int temp = m % n;
if (temp == 0) break;
m = n;
n = temp;
}
System.out.println(cnt);//5*3, cnt=4; 2019*324, cnt=21
}
static boolean is(long n){
for(long i = 2; i < n/i; i++){
if(n % i == 0){
return false;
}
}
return true;
}
public static void main(String[] args) {
int cnt = 0;
for(long i = 2; i <= Long.MAX_VALUE ; i++){
if(is(i)){ cnt ++;}
if(cnt == 2019){
System.out.println(i);
return;
}
}
}
第十届省赛 java B组 填空题
String s = "0100110001010001";
HashSet<String> sites = new HashSet<String>();
for(int i = 0; i < s.length(); i++){
for(int j = i; j <s.length(); j++){
String substring = s.substring(i, j + 1);
sites.add(substring);
}
}
System.out.println(sites.size());
public class Main {
static boolean is(int n){
while(n > 0){
int t = n % 10;
if(t == 2 || t ==4){
return false;
}
n /= 10;
}
return true;
}
public static void main(String[] args) {
int res = 0;
for(int i = 1; i < (int)(2019 / 2); i++){
if(is(i)){
for(int j = i + 1; j < 2019; j++){
if(is(j)){
for(int k = j + 1; k < 2019; k++){
if(is(k)){
if(i + j + k == 2019){
res++;
}
}
}
}
}
}
}
System.out.println(res);
}
}