复试上机准备之二零一四上机题
问题描述
- 在三位整数(100 至 999)中寻找符合下列条件的整数并依次从小到大输出。
(1)完全平方数。
(2)含有两位数字相同。
例:144,676…
- 输入一串字符串,把下标为奇数的小写字母(从 0 开始编号)转换为大写字母。
输出转换后的字符串。
代码分别如下
第一题
# 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;
}
第二题
# 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;
}