有没有办法用单行逻辑代码打印金字塔星形图案?面试官向我的朋友问了这个问题
Is there any way to print pyramid star pattern with single line of logic code ? Interviewer asked this Question to my friend
我的一个朋友被面试官要求使用单行逻辑代码打印金字塔模式。 如果可能,请为我提供解决方案。
如果可能的话...
是的,这是可能的。
必须手动作弊,将声明从头文件中添加。 并且通过使用"所有内容都在一行上"难以阅读的格式,而不是可维护的格式。
不过,这些都是愚蠢的限制。 未在实际项目中使用。
。那么请为我提供解决方案。
extern "C" int puts(const char *s); int main() { puts(" *n * *n * *n * *n * *n***********n"); }
有一种方法可以在一行代码中C++完成。 在main()
函数中打印"金字塔"(或星形(图案所需的唯一语句是:
for (std::string s = "*"; s.size() < 11; s.append("*")) std::cout << s << std::endl;
输出是:ld 被设置为"一行长";只需将每个语句一个接一个地分组即可。另外,如果
*
**
***
****
*****
******
*******
********
*********
**********
OBS:如果你想自己编译它,你应该包括正确的标题。当然,这将使您的源代码文件超过一行长(它不可能不同,对吧(,但main()
函数仍然由一行组成。另外,请注意,停止条件是任意的(在本例中,我将其设置为 10(。
完整代码为:
#include <iostream>
#include <string>
int main() {
for (std::string s = "*"; s.size() < 11; s.append("*")) std::cout << s << std::endl;
}
免責聲明
我假设"一行代码"实际上意味着"一个语句",这是唯一有意义的问题。"一行代码"是非常主观的。C++ 不关心空格/返回,因此,每个代码都可以"一行长";只需将每个语句一个接一个地分组即可。另外,如果我对"行"的定义(可能是"60 个字符的长序列"(与经理的定义不同,可能是"40 个字符的长序列"怎么办?那么在我的"单行"视图上工作的代码在"经理的单行"中可能不起作用。因此,由于这种定义的主观性,唯一正确的问题就是在单个陈述(或表达(中做到这一点,这就是这个答案所要完成的。
现在关于形状。就我而言,"金字塔模式",也称为"星形图案",并不完全是金字塔。每次看到这种拼图,它都会关注这个"直角三角形",我很确定这就是采访中提出的问题。事实上,绘制一个真正的"金字塔"是相当困难的,因为它是一个需要 4 个三角形和一个正方形的 3D 几何形状。因此,关于定义,我的回答和另一个都没有画一个真正的金字塔(实际上,两者都打印了一个三角形(。考虑到编程世界的经验,这个谜题是关于打印"星形图案"的,它更像上面的直角三角形。
- 我的神经网络不起作用 [XOR 问题]
- 有没有办法用单行逻辑代码打印金字塔星形图案?面试官向我的朋友问了这个问题
- 如何让CPP核心功能成为我班的朋友
- "如何用我的编码给面试官留下深刻印象?我可以在我为题材写的代码中采用哪些做法来打动面试官?
- 我的朋友功能无法访问私人变量
- "... .exe hast stopped working"只发生在我朋友的电脑上,而不是我的电脑上
- 如果类外是我的朋友,类外::内也是
- 为什么我的朋友操作超载代码将输出算出为零
- 我如何将模板实例化为我班级的朋友
- 如何在我的课堂上枚举朋友
- 无法实现我的简单朋友函数C++
- 我对朋友功能的理解
- 我的朋友无法在他的 linux 发行版上运行我的 openGL 程序
- 我是否可以检测成员函数是否存在并且可供C++的朋友访问
- 我如何在图书馆里结交同班同学的朋友?
- 如何避免让我的GameManager类成为大多数东西的朋友
- 从朋友那里访问私有变量,我认为我的语法是错误的
- 我如何发送一个unix-exe给我的朋友,这样他就可以通过双击运行它
- 我的应用程序"Qt"在我的计算机中运行,但在我朋友的计算机上无法运行
- 我不明白模板函数如何在 C++14 的 [namespace.memdef]/3 的示例中成为类 A::X::Y 的朋友