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

Author Avatar
patrickcty 3月 07, 2019

问题描述

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

(1)完全平方数。

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

例:144,676…

  1. 输入一串字符串,把下标为奇数的小写字母(从 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;
}