대학에서 인포 매틱스에 대한 숙제를 해결하면서 나는 항상 같은 문제를 해결하는 여러 가지 방법을 찾는다. 편도는 가장 빠르지 만 (실행 시간) 가장 길고 복잡합니다. 다른 하나는 실현하기가 더 쉽고 실행 시간이 짧으며 이해하기 쉽습니다.프로그래밍의 복잡성과 속도가 빨라지면서 가독성과 단순성이 향상되었습니다. 무엇을 선택해야합니까?
미니 예제로서 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;
}
제 질문은 무엇에 집중해야합니까? 구현하기 쉽고 배포하기 쉽고 가독성이나 알고리즘이 우수하고 실행 속도가 빠르며 논리가 튼튼하거나 문제를 해결하는 두 가지 방법이 서로 다르기 때문에 가능한 한 최선을 다해 시도하십시오.
나는 더 나은 속도를 위해 단 한 cout으로 해결책 2를 갈 것이다.) for (int i = 1; i <=; i = i + 2) {cout << "* *"; }'BTW 저는 예제 2에서 오타가 있다고 생각합니다 : 두 루프 모두 스타와 스페이스를 같은 순서로 발행합니다. –
좋은 알림;) 공간이 예로서 공간 대신에 "-"라고 가정 해 보겠습니다. – DomainFlag
두 번째 버전에는 2 개의 루프가있는 이유가 표시되지 않습니다. 왜 결국에는 조건부를 넣지 않을까요? – perreal