从用户输入的行和列中打印的更好方法?没有for循环?递归?
Better way to print from the user inputted in rows and columns? Without for loops? Recursion?
我一直在尝试搜索是否有其他方法可以打印以下图案:
打印实心矩形
####
####
####
我使用了以下代码:
using namespace std;
int main ()
{
int r,c;
cout<<"Enter the number of rows and then columns:\n";
cin>>r>>c;
cout<<"Pattern:\n";
for(int i=1; i<=r; i++)
{
for(int j=1; j<=c; j++)
{
cout<<"*";
}
cout<<"\n";
}
return 0;
}
我的主要问题是有什么方法可以删除嵌套的 for 循环或有什么方法可以使这段代码更好吗?
我们可以对其进行递归吗?有基本案例吗?
通常递归涉及使用单独的堆栈帧,这会原子化每个函数调用的过程,而不会踩到前一个函数调用。在问题集中,递归是解决问题的最佳案例,想到阿克曼函数和复杂的数学函数,但是在这个简单的问题中,您在这里所做的是完全可以接受的。
我可以建议的一项可能的改进是,如果您可以参数化用户输入被限制在其中,则对行指定使用单独的 Look Up Table。简单的说LUT就是一个Key-to-Value对的直接转换,在我潜伏的Leetcode优化的暗角里,它往往是提高代码效率的金鹅
查看此向导:https://www.youtube.com/watch?v=HXNhEYqFo0o
我一直在尝试搜索是否有其他方法可以打印以下图案:
打印实心矩形
####
####
####
我使用了以下代码:
using namespace std;
int main ()
{
int r,c;
cout<<"Enter the number of rows and then columns:\n";
cin>>r>>c;
cout<<"Pattern:\n";
for(int i=1; i<=r; i++)
{
for(int j=1; j<=c; j++)
{
cout<<"*";
}
cout<<"\n";
}
return 0;
}
我的主要问题是有什么方法可以删除嵌套的 for 循环或有什么方法可以使这段代码更好吗?
我们可以对其进行递归吗?有基本案例吗?
通常递归涉及使用单独的堆栈帧,这会原子化每个函数调用的过程,而不会踩到前一个函数调用。在问题集中,递归是解决问题的最佳案例,想到阿克曼函数和复杂的数学函数,但是在这个简单的问题中,您在这里所做的是完全可以接受的。
我可以建议的一项可能的改进是,如果您可以参数化用户输入被限制在其中,则对行指定使用单独的 Look Up Table。简单的说LUT就是一个Key-to-Value对的直接转换,在我潜伏的Leetcode优化的暗角里,它往往是提高代码效率的金鹅
查看此向导:https://www.youtube.com/watch?v=HXNhEYqFo0o