프로그램을 완료하는 단계를 살펴보겠습니다. 배열을 초기화합니다. 크기가 n인 max_sum 배열을 초기화합니다. 모든 인덱스의 최대 합계를 찾아 max_sum 배열에 저장합니다. 모든 요소의 합계를 계산하고 변수 합계에 저장합니다. i =k에서 n까지 반복하는 루프를 작성합니다. 합계에 a[i] - [i - k]를 더하세요. 결과를 최대 결과 합계로 업데이트합니다. 결과의 최대값인 sum + max_sum[i - k]로 결과를 업데이트합니다. 예시 코드를 봅시다. #include<bits/stdc++.h> usi
blue_Channel, green_channel 및 red_channel이라는 세 개의 변수를 선언했습니다. 이러한 변수의 목표는 픽셀 값을 저장하는 것입니다. 우리는 for 루프 내부에서 이러한 변수를 사용했습니다. 그런 다음 color_Image_Matrix라는 행렬을 선언했습니다. 이 메서드의 구문은 다음과 같습니다. blue_Channel = color_image_Matrix.at<Vec3b>(i, j)[0]; BGR 이미지를 사용했습니다. 3개의 채널이 있습니다. 이 채널은 특정 시퀀스를 유지하며 color
이미지에서 특정 부분을 분리하려면 먼저 해당 영역을 찾아야 합니다. 그런 다음 해당 영역을 기본 이미지에서 다른 매트릭스로 복사해야 합니다. 이것이 OpenCV의 ROI가 작동하는 방식입니다. 이 예에서는 처음에 두 개의 행렬이 선언되었습니다. 그 후 image_name.jpg라는 이름의 이미지가 image1에 로드되었습니다. 행렬. 다음 줄 image2=image1 (Rect(100, 100, 120, 120)); 특별한 주의가 필요합니다. 이 라인은 이미지의 정의된 영역을 잘라내어 image2 매트릭스에 저장합니다. 그림
라틴 스퀘어는 특별한 패턴을 가진 행렬입니다. 패턴을 살펴보기 위해 다양한 예를 살펴보겠습니다. 1 2 2 1 1 2 3 3 1 2 2 3 1 1 2 3 4 4 1 2 3 3 4 1 2 2 3 4 1 위의 예에서 알 수 있듯이 라틴 사각형은 크기가 다릅니다. 그러나 위의 행렬의 패턴을 주의 깊게 관찰하면 이전 행의 마지막 숫자가 다음 행의 첫 번째 요소로 오는 것을 알 수 있습니다. 라틴 광장에 숨겨진 패턴입니다. 입력 n에 대해 위의 행렬을 생성하는 프로그램을 작성해야 합니다. 알고리즘 n은 원하는 숫자로 초기화합니다
M 자리 배열과 함께 숫자 N을 지정했습니다. 우리의 임무는 5로 나누어 떨어지는 주어진 M 자리에서 형성된 n자리 숫자의 수를 찾는 것입니다. 문제 입력 및 출력을 이해하기 위해 몇 가지 예를 살펴보겠습니다. 안에 - N = 2 M = 3 arr = {5, 6, 3} 아웃 - 2 5로 나눌 수 있는 2개의 N자리 숫자 35와 65가 있습니다. 다른 예를 살펴보겠습니다. 입력 - N = 1 M = 7 arr = {2, 3, 4, 5, 6, 7, 8} 출력 - 1 주어진 배열에서 5로 나눌 수 있는 1자리
세 개의 숫자가 주어집니다. 처음 두 숫자의 배수에서 n번째 배수를 찾아야 합니다. 좀 더 명확하게 이해하기 위해 예를 들어 보겠습니다. 입력 x = 2 y = 3 n = 7 출력 10 처음 n ****2의 배수는 2 4 6 8 10 12 14입니다. 처음 n ****3 ****의 배수는 3 6 9 12 15 18 21입니다. 두 배수를 결합하고 정렬하면 2 3 4 6 8 9 10 12 14 15 18 21이 되고 목록에서 n번째 숫자는 10입니다. 알고리즘 모든 배수를 저장하기 위해 벡터를 초기화합니다. x의 처
숫자 합이 10인 숫자는 19, 28, 37, 46, 55, 64, 73, 82, 91 등, 시리즈를 관찰하면 각 숫자는 9씩 증가합니다. 위의 시퀀스에는 9만큼 증가하는 동안 자릿수 합이 10이 아닌 숫자가 있습니다. 그러나 자릿수 합이 10인 모든 숫자를 얻게 됩니다. 따라서 9씩 증가하고 숫자 합계를 확인하고 n번째 숫자를 찾는 루프를 가질 수 있습니다. 몇 가지 예를 살펴보겠습니다. 입력 3 7 출력 37 73 알고리즘 숫자 n 초기화 카운터를 0으로 초기화합니다. 19에서 반복되는 루프 작성 현재 숫자
숫자 {0, 1, 2, 3, 4, 5}로 구성된 숫자는 0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25 등, 처음 6자리를 사용하여 위의 수열을 구성할 수 있습니다. 숫자 형성의 예를 살펴보겠습니다. 1 * 10 + 0 = 10 1 * 10 + 1 = 11 1 * 10 + 2 = 12 1 * 10 + 3 = 13 1 * 10 + 4 = 14 1 * 10 + 5 = 15 마찬가지로 숫자 2, 3, 4, 5를 신청하십시오. 위의 패턴을 사용하여 2로 다음 6개의
폴라이트 숫자는 연속된 2개 이상의 양수의 합으로 쓸 수 있는 양수입니다. 일련의 정중한 숫자는 3 5 6 7 9 10 11 12 13 14... n 번째 폴라이트 번호를 찾는 공식이 있습니다. 공식은 n + log2입니다. (n + 로그2 (N)). 기본 로그는 기본 e로 계산됩니다. 밑수 2를 사용하여 계산해야 합니다. 기본 로그 결과를 log(2)로 나누어 밑수가 e인 로그 값을 얻습니다. 알고리즘 n번째 폴라이트 번호에 대한 알고리즘은 간단합니다. 숫자 N을 초기화합니다. 위의 공식을 사용하여 n번째 폴라이트 번호를
N 번째 루트와 그 결과가 제공됩니다. N과 같은 숫자를 찾아야 합니다. =결과. 몇 가지 예를 살펴보겠습니다. 입력 result = 25 N = 2 출력 5 52 =25. 따라서 위의 예에서 출력은 5입니다. 입력 result = 64 N = 3 출력 4 43 =64. 따라서 위의 예에서 출력은 4입니다. 알고리즘 구현 다음은 위의 알고리즘을 C++로 구현한 것입니다. #include <bits/stdc++.h> using namespace std; int getNthRoot(int re
주어진 시리즈는 2, 12, 36, 80, 150... 계열을 명확하게 관찰하면 n번째 숫자가 n2임을 알 수 있습니다. + n3 . 알고리즘 숫자 N을 초기화합니다. 계열 공식을 사용하여 n번째 항을 계산합니다. 결과를 인쇄합니다. 구현 다음은 위의 알고리즘을 C++로 구현한 것입니다. #include <bits/stdc++.h> using namespace std; int getNthTerm(int n) { return (n * n) + (n * n * n); } int main()
주어진 시리즈는 1, 11, 55, 239, 991... 계열을 명확하게 관찰하면 n번째 숫자가 4n임을 알 수 있습니다. -2n-1 . 알고리즘 숫자 N을 초기화합니다. 계열 공식을 사용하여 n번째 항을 계산합니다. 결과를 인쇄합니다. 구현 다음은 위의 알고리즘을 C++로 구현한 것입니다. #include <bits/stdc++.h> using namespace std; int getNthTerm(int n) { int num = pow(4, n) - pow(2, n) - 1;
주어진 시리즈는 1, 17, 98, 354... 급수를 명확하게 관찰하면 n번째 숫자가 4의 거듭제곱과 같다는 것을 알 수 있습니다. 패턴을 봅시다. 1 = 1 ^ 4 17 = 1 ^ 4 + 2 ^ 4 98 = 1 ^ 4 + 2 ^ 4 + 3 ^ 4 354 = 1 ^ 4 + 2 ^ 4 + 3 ^ 4 + 4 ^ 4 ... 알고리즘 숫자 N을 초기화합니다. 결과를 0으로 초기화합니다. 1에서 n까지 반복하는 루프를 작성합니다. 4번째 전력 전류 수를 결과에 추가합니다. 결과를 인쇄합니다. 구현 다음은 위의 알고리즘을 C+
k 자리의 n 번째 회문을 찾기 위해 첫 번째 k 자리 수에서 n 번째 회문 번호를 찾을 때까지 반복할 수 있습니다. 이 접근 방식은 효율적이지 않습니다. 직접 시도해 볼 수 있습니다. 이제 k 자리의 n번째 회문을 찾는 효율적인 접근 방식을 살펴보겠습니다. 숫자에는 두 개의 반쪽이 있습니다. 전반전은 후반전과 동일합니다. k자리의 n번째 숫자의 전반부는 k가 홀수이면 (n - 1) + 10k/2 else(n-1)+10k/2-1 k 자리 숫자가 있는 n 번째 숫자의 두 번째 절반은 숫자의 첫 번째 절반의 반대입니다. k가
이 튜토리얼에서는 n번째 오각형 숫자를 찾는 프로그램을 작성할 것입니다. 오각형 숫자는 정다각형 모양으로 배열된 점이나 자갈로 표현되는 숫자입니다. 더 나은 이해를 위해 위키를 참조하십시오. n번째 오각형 숫자는 (3 * n * n - n) / 2입니다. 일련의 오각형 숫자는 1, 5, 12, 22, 35, 51, 70, 92... 알고리즘 숫자 n을 초기화합니다. 수식을 사용하여 n번째 오각형 수를 찾습니다. 결과 번호를 인쇄하십시오. 구현 다음은 위의 알고리즘을 C++로 구현한 것입니다. #include<bits
스마트 숫자는 최소 3개의 고유한 소인수를 포함하는 숫자입니다. 번호 N이 주어집니다. n번째 스마트 번호를 찾으세요. 스마트 넘버 시리즈는 30, 42, 60, 66, 70, 78... 알고리즘 숫자 N을 초기화합니다. 카운트를 0으로 초기화합니다. 주어진 숫자가 소수인지 확인하는 함수를 작성하세요. 숫자가 똑똑한지 아닌지 확인하는 함수를 작성하세요. 첫 번째 스마트 숫자가 30이므로 30부터 반복하는 루프를 작성합니다. 소수 기능을 이용하여 현재 숫자가 스마트 숫자인지 아닌지 확인하세요. 스마트한 번호를 찾으면 1씩 증가합
0보다 큰 수를 자연수라고 합니다. 자연수는 1, 2, 3, 4, 5, 6, 7... 알고리즘 숫자 n을 초기화합니다. 1에서 n까지 반복하는 루프를 작성합니다. 숫자를 인쇄하십시오. 반복 변수를 증가시킵니다. 구현 다음은 위의 알고리즘을 C++로 구현한 것입니다. #include <bits/stdc++.h> using namespace std; void printNaturalNumbers(int n) { for (int i = 1; i <= n; i++) {  
이진 행렬이 주어지면 각 셀에서 1을 포함하는 가장 가까운 셀까지의 최소 거리를 찾아야 합니다. 예를 들어 보겠습니다. 입력 0 0 1 1 1 0 0 0 0 출력 1 1 0 0 0 1 1 1 2 최소 거리는 현재 셀 행 - 1 셀 행 + 현재 셀 열 - 1 셀 열에서 최소 거리입니다. 알고리즘 원하는 크기의 행렬을 초기화합니다. 거리를 저장하기 위해 동일한 크기의 다른 행렬을 초기화합니다. 전체 행렬에 대해 반복 . 현재 셀 값이 1이면 1에서 1까지의 거리가 0이므로 거리를 0으로 설정 현재 셀
숫자 n이 주어지면 n보다 작은 가장 가까운 소수를 찾아야 합니다. n - 1부터 확인하기 시작하면 번호를 쉽게 찾을 수 있습니다. 몇 가지 예를 살펴보겠습니다. 입력 10 출력 7 알고리즘 숫자 n을 초기화합니다. n - 1에서 1까지 반복하는 루프 작성 찾은 첫 번째 소수 반환 주어진 n보다 작은 소수를 찾지 못한 경우 -1 반환 구현 다음은 위의 알고리즘을 C++로 구현한 것입니다. #include <bits/stdc++.h> using namespace std; bool isPrime(int n)
네온 숫자는 숫자의 제곱의 자릿수의 합이 숫자와 같은 숫자입니다. 예를 들어 보겠습니다. n =9 정사각형 =81 제곱의 자릿수의 합 =8 + 1 =9 따라서 숫자 9는 네온 숫자입니다. 주어진 숫자가 네온 숫자인지 아닌지 확인해야 합니다. 주어진 숫자가 네온 숫자인 경우 Yes를 인쇄하고 그렇지 않으면 No를 인쇄합니다. 알고리즘 숫자 n을 초기화합니다. 숫자의 제곱을 구하세요. 사각형 자릿수의 합 구하기 정사각형의 자릿수의 합이 주어진 숫자와 같으면 결과는 참, 그렇지 않으면 거짓입니다. 구현 다음은 위의 알고리즘