复试上机准备之二零一四上机题

Author Avatar
Patrick 3月 07, 2019

问题描述

  1. 在三位整数(100 至 999)中寻找符合下列条件的整数并依次从小到大输出。

(1)完全平方数。

(2)含有两位数字相同。

例:144,676…

  1. 输入一串字符串,把下标为奇数的小写字母(从 0 开始编号)转换为大写字母。

输出转换后的字符串。

代码分别如下

第一题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# include <iostream>
# include <cmath> // 用来求平方根

using namespace std;

bool is_square(int num) {
double x = sqrt(num);
int y = (int)x;

return x == y;
}

bool has_same_nums(int num) {
int x = num / 100;
int y = (num - x * 100) / 10;
int z = num - x * 100 - y * 10;
// cout << x << ' ' << y << ' ' << z;

return x == y || x == z || y == z;
}

int main() {

for (int i = 100; i <= 999; ++i) {
if (is_square(i) && has_same_nums(i)) {
cout << i << ' ';
}
}

cout << endl;

return 0;
}

第二题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# include <iostream>
# include <string>

using namespace std;



int main() {

string str;
int interval = 'a' - 'A';
while (cin >> str) {
for (int i = 0; i < str.length(); ++i) {
if (i % 2 == 1) continue;
if (str[i] - 'a' >= 0 && str[i] - 'z' <= 0) {
str[i] -= interval;
}
}

cout << str << endl;
}

return 0;
}