我正在努力完成以下任务:
让我们看一下三个小字母的集合(例如aaa,aab等)。输入自然数N后,打印出前N组,每组中都有唯一的字母。
示例:
输入:5
输出:abc abd abe abf abg
如何编写算法?
我正在努力完成以下任务:
让我们看一下三个小字母的集合(例如aaa,aab等)。输入自然数N后,打印出前N组,每组中都有唯一的字母。
示例:
输入:5
输出:abc abd abe abf abg
如何编写算法?
由于这似乎是一个家庭作业问题,所以我将花点时间解释一下下面的代码如何工作。
想象一下,执行类似的任务来写出a..z
中的字符,您将遍历所有字符,并在达到所需数字时停在一点。所以像这样的代码将为您做到这一点
for (char c='a'; c <= 'z'; c++) { /* ... */ }
这将为您提供abcd...z
的结果现在,为了获得所需的内容,您需要将该循环的输出想象为一列,以便得出
您想要的输出需要执行以下操作:
aaa
bbb
ccc
...
...
...
zzz
因此,您需要按照以下思路考虑:“对于每个字符,我需要获取每个字符,对于该字符,则需要每个字符”
提示:这可以通过设置3个for循环来实现。
我强烈不建议您先选择该解决方案,但是如果您仍然遇到问题,请随时使用它:
#include <iostream>
int main() {
int n,totalIterations;
std::cin >> n;
totalIterations = 0;
for (char i='a'; i <= 'z'; i++) {
for (char j='a'; j <= 'z'; j++) {
for (char z='a'; z <= 'z'; z++) {
std::cout << i << j << z << " ";
totalIterations++;
if (totalIterations > n-1) {
return 0;
}
}
}
}
return 0;
}