목차
다음 프로그램에서 사용된 방법은 다음과 같습니다
Example
Output
백엔드 개발 C++ C 언어에서는 N번 이동한 후 배열에 있는 1의 개수를 셉니다.

C 언어에서는 N번 이동한 후 배열에 있는 1의 개수를 셉니다.

Sep 11, 2023 pm 04:25 PM
c 언어 어레이 이동 통계

C 언어에서는 N번 이동한 후 배열에 있는 1의 개수를 셉니다.

N 크기의 배열이 주어졌습니다. 배열은 처음에는 모두 0입니다. 임무는 계산하는 것입니다. N이 이동한 후 배열에 있는 1의 수입니다. 각 N번째 단계에는 연관된 규칙이 있습니다. 규칙은 다음과 같습니다 -

  • 첫 번째 이동 - 위치 1, 2, 3, 4에서 요소

  • 를 변경합니다……….
  • 두 번째 이동 - 위치 2, 4, 6, 8……

  • 세 번째 동작 - 위치 3과 6, 9, 12의 요소를 변경합니다………..

마지막 배열에서 1의 개수를 셉니다.

예문을 통해 이해합니다.

>

Input

Arr[]={ 0,0,0,0 } N=4
로그인 후 복사

Output

Number of 1s in the array after N moves − 2
로그인 후 복사
로그인 후 복사

Explanation - 후속 이동 후 배열 -

Move 1: { 1,1,1,1 }
Move 2: { 1,0,1,0 }
Move 3: { 1,0,0,3 }
Move 4: { 1,0,0,1 }
Number of ones in the final array is 2.
로그인 후 복사

Input

Arr[]={ 0,0,0,0,0,0} N=6
로그인 후 복사

Output

Number of 1s in the array after N moves − 2
로그인 후 복사
로그인 후 복사

설명 - 후속 이동 후 배열 -

Move 1: { 1,1,1,1,1,1,1 }
Move 2: { 1,0,1,0,1,0,1 }
Move 3: { 1,0,0,1,0,0,1 }
Move 4: { 1,0,0,0,1,0,0 }
Move 5: { 1,0,0,0,0,1,0 }
Move 4: { 1,0,0,0,0,0,1 }
Number of ones in the final array is 2.
로그인 후 복사

다음 프로그램에서 사용된 방법은 다음과 같습니다

  • 0과 정수 N으로 초기화된 정수 배열 Arr[]을 사용합니다.

    < /li>
  • Onecount 함수는 Arr[]과 해당 크기 N을 입력으로 사용하고 no를 반환합니다. N이 이동한 후 최종 배열의 숫자입니다.

  • for 루프는 1부터 시작하여 배열의 끝으로 이동합니다.

  • 각 i는 i번째 단계를 나타냅니다.

  • 내포된 for 루프는 0번째 인덱스부터 시작하여 배열의 끝으로 이동합니다.

  • i번째 이동마다 인덱스 j가 i의 배수(j%i==0)인 경우 해당 위치의 0을 1로 바꿉니다.

  • 배열이 끝날 때까지 각 i에 대해 이 프로세스를 계속합니다.

  • Note - 인덱싱은 i=1,j=1부터 시작하지만 배열 인덱싱은 0부터 N-1까지 진행됩니다. 따라서 arr[j1]은 매번 변환됩니다.

  • 마지막으로 전체 배열을 다시 반복하면서 숫자를 세어보세요. 1을 포함하고 카운트에 저장됩니다.

  • 원하는 결과의 개수를 반환합니다.

Example

Live Demo

#include <stdio.h>
int Onecount(int arr[], int N){
   for (int i = 1; i <= N; i++) {
      for (int j = i; j <= N; j++) {
         // If j is divisible by i
         if (j % i == 0) {
            if (arr[j - 1] == 0)
               arr[j - 1] = 1; // Convert 0 to 1
            else
               arr[j - 1] = 0; // Convert 1 to 0
         }
      }
   }
   int count = 0;
   for (int i = 0; i < N; i++)
      if (arr[i] == 1)
         count++; // count number of 1&#39;s
   return count;
}
int main(){
   int size = 6;
   int Arr[6] = { 0 };
   printf("Number of 1s in the array after N moves: %d", Onecount(Arr, size));
return 0;
}
로그인 후 복사

Output

위 코드를 실행하면 다음 출력이 생성됩니다. -

Number of 1s in the array after N moves: 2
로그인 후 복사

위 내용은 C 언어에서는 N번 이동한 후 배열에 있는 1의 개수를 셉니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

C 언어에서 typedef 구조체 사용법 C 언어에서 typedef 구조체 사용법 May 09, 2024 am 10:15 AM

C 언어에서 typedef 구조체 사용법

C 언어에서 strcpy와 strcat의 차이점 C 언어에서 strcpy와 strcat의 차이점 May 08, 2024 pm 01:03 PM

C 언어에서 strcpy와 strcat의 차이점

C 언어에서 Real은 무엇을 의미합니까? C 언어에서 Real은 무엇을 의미합니까? May 09, 2024 pm 12:06 PM

C 언어에서 Real은 무엇을 의미합니까?

C 언어로 거듭제곱 함수를 구현하는 방법 C 언어로 거듭제곱 함수를 구현하는 방법 May 09, 2024 pm 11:33 PM

C 언어로 거듭제곱 함수를 구현하는 방법

C 언어에서 scanf 오류가 발생하면 어떻게 해야 할까요? C 언어에서 scanf 오류가 발생하면 어떻게 해야 할까요? May 09, 2024 am 11:39 AM

C 언어에서 scanf 오류가 발생하면 어떻게 해야 할까요?

_C 언어의 복잡한 사용법 _C 언어의 복잡한 사용법 May 08, 2024 pm 01:27 PM

_C 언어의 복잡한 사용법

C 언어에서 제한을 사용하는 방법 C 언어에서 제한을 사용하는 방법 May 08, 2024 pm 01:30 PM

C 언어에서 제한을 사용하는 방법

_C언어에서 bool은 무슨 뜻인가요? _C언어에서 bool은 무슨 뜻인가요? May 08, 2024 pm 01:33 PM

_C언어에서 bool은 무슨 뜻인가요?

See all articles