여기서 우리는 문제의 까다로운 솔루션을 볼 것입니다. 세미콜론을 사용하지 않고 1에서 N까지 일부 숫자를 인쇄합니다.
우리는 두 가지 다른 방법으로 이 문제를 해결할 수 있습니다. 첫 번째는 Iterative 방식이고 두 번째는 Recursive 방식입니다.
방법 1
printf() 함수는 0이 아닌 값이 되도록 문자열의 길이를 반환합니다. 결과를 출력하는 조건으로 논리적 AND를 수행할 수 있습니다. 그런 다음 카운터 값을 높이십시오.
예시 코드
#include<stdio.h> #define N 20 int main(int num, char *argv[]) { while (num <=N && printf("%d ", num) && num++) { //The while body is empty. } }
출력
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
방법 2
두 번째 방법에서는 재귀를 사용하여 동일한 작업을 수행하는 방법을 볼 것입니다. 우리는 main 함수와 함께 인수를 전달할 것입니다. 이 메인은 재귀적으로 호출됩니다.
예시 코드
#include<stdio.h> #define N 20 main(int val) { if (val <=N && printf("%d ", val) && main(val + 1)) { //Body is empty } }
출력
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20