在C ++中生成字母三元组

我正在努力完成以下任务:

  

让我们看一下三个小字母的集合(例如aaa,aab等)。输入自然数N后,打印出前N组,每组中都有唯一的字母。

     

示例:

     

输入:5
  输出:abc abd abe abf abg

如何编写算法?

wobushiren1314 回答:在C ++中生成字母三元组

由于这似乎是一个家庭作业问题,所以我将花点时间解释一下下面的代码如何工作。

想象一下,执行类似的任务来写出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;
}
本文链接:https://www.f2er.com/3048165.html

大家都在问