solution.md 2.0 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1
# 猜字母
F
fix bug  
feilong 已提交
2

每日一练社区's avatar
每日一练社区 已提交
3
把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。  
每日一练社区's avatar
每日一练社区 已提交
4

每日一练社区's avatar
每日一练社区 已提交
5
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。   
每日一练社区's avatar
每日一练社区 已提交
6

每日一练社区's avatar
每日一练社区 已提交
7 8
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。  

每日一练社区's avatar
每日一练社区 已提交
9 10
以下程序哪项运行后不能得到正确答案?

每日一练社区's avatar
每日一练社区 已提交
11
## aop
F
fix bug  
feilong 已提交
12

每日一练社区's avatar
每日一练社区 已提交
13
### before
F
fix bug  
feilong 已提交
14

每日一练社区's avatar
每日一练社区 已提交
15
```c
每日一练社区's avatar
每日一练社区 已提交
16
#include <bits/stdc++.h>
每日一练社区's avatar
每日一练社区 已提交
17 18
using namespace std;
```
每日一练社区's avatar
每日一练社区 已提交
19

每日一练社区's avatar
每日一练社区 已提交
20
### after
F
fix bug  
feilong 已提交
21

每日一练社区's avatar
每日一练社区 已提交
22
```c
每日一练社区's avatar
每日一练社区 已提交
23 24 25 26

```

## 答案
F
fix bug  
feilong 已提交
27

每日一练社区's avatar
每日一练社区 已提交
28
```c
每日一练社区's avatar
每日一练社区 已提交
29
int a[2014];
每日一练社区's avatar
每日一练社区 已提交
30 31
int main()
{
每日一练社区's avatar
每日一练社区 已提交
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
    int count = 2014;
    for (int i = 0; i < 2014; i++)
    {
        a[i] = i + 1;
    }
    do
    {
        for (int i = 0; i <= count - 1; i += 2)
            a[i] = 0;
        count = 0;
        for (int j = 0; j <= 2013; j++)
        {
            if (a[j] != 0)
            {
                a[count] = a[j];
                a[j] = 0;
                count++;
            }
        }
    } while (count != 1);
    cout << char('a' + (a[0] % 19));
    return 0;
每日一练社区's avatar
每日一练社区 已提交
54 55 56 57
}
```
## 选项

F
fix bug  
feilong 已提交
58

每日一练社区's avatar
每日一练社区 已提交
59
### A
F
fix bug  
feilong 已提交
60

每日一练社区's avatar
每日一练社区 已提交
61
```c
每日一练社区's avatar
每日一练社区 已提交
62 63
int main()
{
每日一练社区's avatar
每日一练社区 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
    string s = "abcdefghijklmnopqrs";
    string str;

    for (int i = 0; i < 106; i++)
    {
        str += s;
    }

    while (str.length() > 1)
    {
        for (int i = 0; i < str.length(); i++)
        {
            str.erase(i, 1);
        }
    }
    cout << str;
    return 0;
每日一练社区's avatar
每日一练社区 已提交
81 82 83 84
}
```

### B
F
fix bug  
feilong 已提交
85

每日一练社区's avatar
每日一练社区 已提交
86
```c
每日一练社区's avatar
每日一练社区 已提交
87 88
int main()
{
每日一练社区's avatar
每日一练社区 已提交
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
    char a[2015];
    int t = 0;
    for (int j = 0; j < 106; j++)
        for (int i = 0; i < 19; i++)
            a[t++] = 'a' + i;
    a[t] = 0;
    int k;
    while (t != 1)
    {
        k = 0;
        for (int j = 1; j < t; j += 2)
            a[k++] = a[j];
        a[k] = '\0';
        t = k;
    }
    cout << a << endl;
    return 0;
每日一练社区's avatar
每日一练社区 已提交
106 107 108 109
}
```

### C
F
fix bug  
feilong 已提交
110

每日一练社区's avatar
每日一练社区 已提交
111
```c
每日一练社区's avatar
每日一练社区 已提交
112 113
int main()
{
每日一练社区's avatar
每日一练社区 已提交
114 115 116 117 118 119 120 121 122 123 124 125 126 127
    vector<char> vc1;
    int i;
    for (i = 0; i < 2014; i++)
        vc1.push_back('a' + (i % 19));
    while (vc1.size() != 1)
    {
        vector<char> vc2;

        for (i = 1; i < vc1.size(); i += 2)
            vc2.push_back(vc1[i]);
        vc1.assign(vc2.begin(), vc2.end());
    }
    cout << vc1[0] << endl;
    return 0;
每日一练社区's avatar
每日一练社区 已提交
128 129
}
```