在大学解决我的信息学作业时,我总是找到不同的方法来解决同一个问题。一种方法是最快的(执行时间)但最长且更复杂。另一个是更容易实现,执行时间短,易于理解等。
举个小例子,我们必须用 C++ 创建一个程序,它输出一行 N 个元素,其中每个元素具有相同的相邻元素,但中间的元素不同。
Ex.
6 Elements: *_*_*_
7 Elements: *_*_*_*
第一个解决方案是最简单的:
#include <iostream>
using namespace std;
int main(void){
int a;
cin >> a;
for (int i=1; i<=a; i++)
{
if (i%2 != 0)
{
cout << "*";
}
else
{
cout << " ";
}
}
return 0;
}
第二个实现起来有点困难,但执行起来更快(条件检查更少):
#include <iostream>
using namespace std;
int main(void){
int a;
cin >> a;
if (a%2 == 1)
{
for (int i=1; i<=a; i=i+2)
{
cout << "*";
cout << " ";
}
}
else
{
for (int i=1; i<a; i=i+2)
{
cout << "*";
cout << " ";
}
cout << " ";
}
return 0;
}
我的问题是我应该关注什么?干净的代码,易于实现/部署和更好的可读性或最佳算法,更快的执行和强大的逻辑,或者尽可能地尝试混合所有这两种,因为这两种解决问题的方法之间总是存在差异?