[뻘글] 다중for문을 for문 하나로 해결보기...
글쓴이: Scarecrow / 작성시간: 월, 2008/11/17 - 7:01오후
http://kldp.org/node/99915 에 뻘플로 첫플을 누리는 기쁨을 누리긴 했습니다만...
저도 진지한 리플을 달기 위해 나름 생각해 보았는데...
그 결과 본 뻘글이 완성되었습니다.
for(int i = 1; i < 5; ++i) {
for(int j = 2; j < 5; ++j) {
for(int k = 3; k < 5; ++k) {
cout << i*100 + j*10 + k << ", ";
}
cout << "Hmm..." << "; ";
}
cout << "Oh!!" << endl;
}for(int i = 1; i < 5; ++i) {
for(int j = 2, k = 3; j < 5;) {
if(k < 5) {
cout << i*100 + j*10 + k << ", ";
++k;
} else {
cout << "Hmm..." << "; ";
++j; k = 3;
}
}
cout << "Oh!!" << endl;
}for(int i = 1, j = 2, k = 3; i < 5;) {
if(j < 5) {
if(k < 5) {
cout << i*100 + j*10 + k << ", ";
++k;
} else {
cout << "Hmm..." << "; ";
++j; k = 3;
}
} else {
cout << "Oh!!" << endl;
++i; j = 2; k = 3;
}
}즉 3중for문도 for문 하나로 해결됩니다.
4중, 5중 그이상도 가능할겁니다.
그냥 다음과 같은 변환을 따르면 됩니다.
for( A1; B1; C1 ) {
for( A2; B2; C2 ) {
[Block 2];
}
[Block 1];
}for( A1, A2; B1; ) {
if( B2 ) {
[Block 2];
C2;
} else {
[Block 1];
C1; A2;
}
}세줄요약: 이 변환에서 for문을 하나로 줄였다고 해서 생기는 장점은 하나 없구요...
수행시간은 변환전후 100% 동일합니다. ^^
전혀 최적화가 아니라능~
한단어 요약: 뻘짓
Forums:

