一、

  • 1200000有多少个约数(只计算正约数)。
    答案:96

二、

  • 在计算机存储中,15.125GB是多少MB?
    答案:15488

三、

  • 在1至2019中,有多少个数的数位中包含数字9?
     答案:544

四、

  • 一棵包含有2019个结点的树,最多包含多少个叶结点?
    答案:2018

五、


  • 一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,例如1135是一个数位递增的数,而1024不是一个数位递增的数。给定正整数 n,请问在整数 1 至 n 中有多少个数位递增的数?
  • O(n)

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n, ans;
bool ok(int x) {
int t = 10;
while (x) {
int d = x % 10;
if (d > t) return false;
t = d;
x /= 10;
}
return true;
}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
if (ok(i)) ans++;
}
printf("%d", ans);
return 0;
}


  • 在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k],则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。
  • O(n2)

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1005;
int n, p[N], ans;
bool ok(int x) {
bool ok = false;
for (int i = x - 1; i >= 1; i--) {
if (p[i] < p[x]) {
ok = true; break;
}
}
if (!ok) return false;
for (int i = x + 1; i <= n; i++) {
if (p[x] < p[i]) return true;
}
return false;
}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &p[i]);
}
for (int i = 1; i <= n; i++) {
if (ok(i)) ans++;
}
printf("%d", ans);
return 0;
}

七、


  • 小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。给定一个单词,请判断这个单词是否也是这种单词,如果是请输出yes,否则请输出no。元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。
  • O(n)

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 105;
int n;
char s[N], h[5] = {'a', 'e', 'i', 'o', 'u'};
bool ok(int x) {
for (int i = 0; i < 5; i++) {
if (h[i] == s[x]) return true;
}
return false;
}
bool solve() {
n = strlen(s + 1);
//找第一段
int t = 1;
for (; t <= n; t++) {
if (ok(t)) {break;}
}
//找第二段
if (t >= n || t == 1) return false;
for (; t <= n; t++) {
if (!ok(t)) {break;}
}
//找第三段
if (t >= n) return false;
for (; t <= n; t++) {
if (ok(t)) {break;}
}
//找第四段
if (t > n) return false;
for (; t <= n; t++) {
if (!ok(t)) {break;}
}
if (t == n + 1) return true;
return false;
}
int main() {
scanf("%s", s + 1);
if (solve()) printf("yes");
else printf("no");
return 0;
}

八、

  • 第八题

九、

  • 第九题

十、

  • 第十题