>백엔드 개발 >C++ >루프나 조건문 없이 숫자를 순차적으로 인쇄하려면 어떻게 해야 합니까?

루프나 조건문 없이 숫자를 순차적으로 인쇄하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-27 03:33:14543검색

How Can We Print Numbers Sequentially Without Loops or Conditional Statements?

반복이나 조건 없이 숫자 인쇄

프로그래밍에서는 일련의 숫자를 인쇄하거나 표시해야 하는 경우가 많습니다. 일반적인 접근 방식은 루프나 조건문을 사용하여 원하는 범위를 반복하는 것입니다. 그러나 이러한 구문에 의존하지 않고 일련의 숫자를 인쇄하는 것이 가능합니다.

C 또는 C에서 1부터 1000까지 인쇄

숫자 인쇄 작업의 경우 1부터 1000까지 가능한 해결책 중 하나는 재귀 함수와 관련됩니다.

#include <stdio.h>

void main(int j) {
  printf("%d\n", j);
  (&&main + (&exit - &main)*(j/1000))(j+1);
}

이 함수는 다음을 호출합니다. 포인터 오류를 방지하기 위해 주소 연산자 &가 함수 포인터 앞에 사용됩니다.

표준 C 버전

위 함수의 보다 표준적인 C 버전은 다음과 같습니다.

#include <stdio.h>
#include <stdlib.h>

void f(int j) {
  static void (*const ft[2])(int) = { f, exit };

  printf("%d\n", j);
  ft[j/1000](j + 1);
}

int main(int argc, char *argv[]) {
  f(1);
}

이 버전에서는 다음을 사용합니다. 동일한 효과를 얻기 위한 정적 함수 포인터 배열.

결론

이러한 방법은 가장 효율적이거나 우아한 솔루션은 아니지만 인쇄 시퀀스의 가능성을 보여줍니다. 루프나 조건문을 사용하지 않고 숫자를 계산합니다.

위 내용은 루프나 조건문 없이 숫자를 순차적으로 인쇄하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.