在 C++ 中生成三个字母[关闭]
Posted
技术标签:
【中文标题】在 C++ 中生成三个字母[关闭]【英文标题】:Generating triplets of letters in C++ [closed] 【发布时间】:2019-11-22 21:05:09 【问题描述】:我正在努力完成以下任务:
让我们看一下三个小写字母的集合(例如 aaa、aab 等)。输入一个自然数 N,打印出前 N 个集合,每个集合中都有唯一的字母。
例子:
输入:5 输出:abc abd abe abf abg
如何编写算法?
【问题讨论】:
这听起来像是一个家庭作业问题...该网站的规则是您应该问一个特定的技术问题,您尝试了什么不起作用,或者您不了解什么概念? 嗨米拉,欢迎来到 ***。这不是编码服务,请看tour。请展示您尝试过的内容并提出具体的技术问题(如果有的话)。 大家好,我尝试了一些我想到的概念,但我不太清楚如何生成 3 个不同的字母,尤其是如果输入的数字大于 24。我是否必须使用字符串还是有其他选择? 也许你可以add what you've tried to your question?那么也许我们可以帮助您找出问题所在。 我还要补充一点,这个问题有一些负面反馈,无论是在 cmets 还是 downvotes 中。不要个人认为!我们每天会看到数百个家庭作业问题,其中许多都没有之前的工作 - 因此,尽管您可能已经尝试过某些东西,但我们必须对其严格,以保留对其他程序员有用的清晰、集中的问题未来。祝你好运! 【参考方案1】:由于这似乎是一个家庭作业问题,我将详细介绍一下下面的代码是如何工作的。
想象一下有一个类似的任务来写出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;
【讨论】:
这无疑是有帮助的,但这个问题似乎缺乏个人努力和原创研究,如果 OP 使用它,他们可能会根据规则被认为是作弊他们的机构。在此基础上,最好等人们自己努力再提供帮助,这样他们才能真正学到一些东西。 同意,确实如此,尽管您不同意有时在编程中您只需要朝着正确的方向稍加推动,尤其是在您学习的时候。我敢肯定 OP 对她的问题没有任何伤害,可能会在截止日期前追究,只需要知道如何解决这个问题,她就可以继续前进。 我同意,但一个完整的解决方案可能不是“朝着正确的方向小小推动”,而这正是我试图梳理的问题。如果 OP 在不理解的情况下使用它,她可能不太可能经历理解它所需的学习阶段。当然,我们可以希望这里的每个人都愿意学习,即使他们有答案,但我阅读数百道作业题的经验是,有很多学生只是在寻找捷径。 谢谢,我改变了我的答案,希望在完成确切的解决方案之前能稍微鼓励一下 OP。 非常感谢您的意见。例如,我确实在寻找一些建议或建议,而不是问题的完整解决方案。现在,我希望我的问题被视为企图作弊。我对这种材料很陌生,因此有时我发现自己被困在可用和未分类的信息海洋中的一项任务。我很感谢作者回答我的问题。我会尽我所能去追根究底。以上是关于在 C++ 中生成三个字母[关闭]的主要内容,如果未能解决你的问题,请参考以下文章