Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++
  • C 프로그래밍
  •   
  • C++
  •   
  • Redis
  •   
  • BASH 프로그래밍
  •   
  • Python
  •   
  • Java
  •   
  • 데이터 베이스
  •   
  • HTML
  •   
  • JavaScript
  •   
  • 프로그램 작성
  •   
  • CSS
  •   
  • Ruby
  •   
  • SQL
  •   
  • IOS
  •   
  • Android
  •   
  • MongoDB
  •   
  • MySQL
  •   
  • C#
  •   
  • PHP
  •   
  • SQL Server
  • C++

    1. C++에서 짝수 인덱스 이항 계수의 합 찾기

      숫자 n이 있다고 가정하고 $$\left(\begin{array}{c}n\\ 0\end{array}\right)+\left(\begin {array}{c}n\\ 2\end{array}\right)+\left(\begin{array}{c}n\\ 4\end{array}\right)+\left(\begin{array }{c}n\\ 6\end{array}\right)+...\left(\begin{array}{c}4\\ 0\end{array}\right)+\left(\begin{ array}{c}4\\ 2\end{array}\right)+\

    2. C++에서 반복된 반전 및 추가 작업으로 생성된 이진 문자열에서 k번째 비트 찾기

      이진 문자열 s가 있다고 가정합니다. 처음에는 0입니다. 이제 각 반복에서 이를 반전하고 추가합니다. 따라서 n번째 반복 후에 k번째 비트를 찾습니다. 반복 횟수가 4이고 k =7이라고 가정하면 - 반복 값(초기 0) 1 01 2 0110 3 01101001 4 0110100110010110 그래서 7 비트는 1입니다. 각 반복에서 보수를 찾고 추가하므로 n번째 반복 후에 k번째 비트를 찾습니다. 예시 #include<iostream> using namespace std; string getComplem

    3. C++의 배열에서 반복되지 않는(고유한) 요소의 합 찾기

      요소가 거의 없는 배열 A가 있다고 가정합니다. 배열에 있는 모든 개별 요소의 합을 찾아야 합니다. 따라서 A =[5, 12, 63, 5, 33, 47, 12, 63]이면 개별 요소의 합은 160입니다. 중복 요소는 일단 고려하면 무시됩니다. 이 문제를 효율적으로 해결하기 위해 순서 없는 집합을 사용할 수 있습니다. 우리는 하나의 for 루프를 실행하고 어떤 값이 처음에 오는지, 합 변수에 추가하고 다음 번에는 이 값을 사용하지 않을 해시 테이블에 저장합니다. 예시 #include<iostream> #include<

    4. C++에서 1/n의 10진수 값으로 마침표 길이 찾기

      숫자 n이 있다고 가정합니다. 1/n의 십진수 값에서 기간의 길이를 찾아야 합니다. 따라서 n의 값이 7이면 1/7 =0입니다.142857 142857… 굵은 글씨로 그 부분이 반복되고 있습니다. 여기에서 기간의 길이는 6입니다. 숫자 n의 경우 출력에 n개의 고유한 나머지가 있을 수 있지만 일부 초기 나머지가 반복되지 않으므로 기간은 첫 번째 나머지에서 시작되지 않을 수 있습니다. 따라서 우리는 기간의 나머지가 선택되었는지 확인하고 (n+1)번째 나머지부터 시작하여 다음 항목을 찾기 시작해야 합니다. (n+1)번째 나머지와 다음

    5. C++에서 반복 빼기로 모든 요소를 ​​동일하게 만든 후 최대 배열 합 찾기

      n개의 요소로 구성된 배열이 있다고 가정합니다. 모든 요소가 동일하도록 모든 요소의 가능한 최대 합을 찾으십시오. 허용되는 유일한 작업은 두 요소를 선택하고 둘 중 더 큰 요소를 두 요소의 절대 차이로 바꾸는 것입니다. 요소가 [9, 12, 3, 6]과 같다고 가정합니다. 그러면 출력은 12가 됩니다. 따라서 먼저 A[1]을 A[1] – A[3] =12 – 6 =6으로 바꿉니다. 이제 요소는 [9, 6, 3, 6]이고 A[ 3] A[3] – A[2] =6 – 3 =3입니다. 따라서 요소는 [9, 6, 3, 3]입니다. 그런 다음 A

    6. C++에서 엄격하게 증가하는 하위 배열의 최대 합 찾기

      n개의 정수 배열이 있다고 가정합니다. 엄격하게 증가하는 부분배열의 최대 합을 찾습니다. 따라서 배열이 [1, 2, 3, 2, 5, 1, 7]과 같으면 합계는 8입니다. 이 배열에는 엄격하게 증가하는 세 개의 하위 배열이 있습니다. {1, 2, 3}, {2 , 5} 및 {1, 7}. 최대 합계 하위 배열은 {1, 7}입니다. 이 문제를 해결하려면 최대 합계와 현재 합계를 추적해야 합니다. 각 요소 arr[i]에 대해 이것이 arr[i – 1]보다 크면 이를 현재 합계에 추가하고, 그렇지 않으면 arr[i]는 다른 하위 배열의 시작

    7. C++ 프로그램에서 각 방사 스테이션의 최종 방사

      직선에 N개의 역이 있다고 가정합니다. 그들 각각은 동일한 음이 아닌 방사선 전력을 가지고 있습니다. 모든 스테이션은 다음과 같은 방법으로 인접 스테이션의 방사 전력을 증가시킬 수 있습니다. 방사선 전력이 R인 스테이션 i가 (i – 1) 스테이션의 방사선 전력을 R-1만큼 증가시키고 (i - 2) 스테이션의 방사선 전력을 R-2만큼 증가시키고 (i + 1) 스테이션의 방사선 전력을 증가시킨다고 가정합니다. R-1에 의한 방사 전력, R-2에 의한 (i + 2)번째 스테이션의 방사 전력. 곧. 예를 들어 배열이 Arr =[1, 2

    8. C++에서 주어진 둘레와 면적에서 직육면체의 최대 부피 찾기

      면적 A와 둘레 P가 있다고 가정하고, 이제 주어진 둘레와 표면적에서 직육면체의 형태로 만들 수 있는 최대 부피를 찾아야 합니다. 따라서 P가 24이고 A가 24이면 출력은 8이 됩니다. 입방체 P =4(길이 + 너비 + 깊이)의 주어진 둘레에 대해 알 수 있듯이 면적의 경우 A =2(길이* 너비 + 너비* 깊이 + 길이 *깊이)이고 부피는 V =(길이 * 너비*깊이) 예시 #include<iostream> #include<cmath> using namespace std; float maxVolumeCuboi

    9. C++의 무한 라인에서 목표에 도달하기 위한 최소 이동 찾기

      무한 수선에 수 위치가 있다고 가정합니다. (-inf ~ +inf). 0에서 시작하여 설명된 대로 이동하여 목표에 도달해야 합니다. i번째 이동에서 왼쪽 또는 오른쪽으로 i 단계로 이동할 수 있습니다. 필요한 최소 이동 수를 찾아야 합니다. 목표가 2라고 가정하면 최소 단계는 3이 됩니다. 0에서 1, 1에서 -1, -1에서 2입니다. 이 문제를 해결하기 위해 기억해야 할 몇 가지 중요한 사항이 있습니다. 목표가 음수이면 숫자 라인이 동일하므로 이것을 양수로 간주하십시오. 해결을 위해 아이디어는 가능한 한 한 방향으로 이동하는 것

    10. C++에서 Log upto N을 계산하는 데 필요한 최소 Log 값 찾기

      우리가 알고 있듯이 log(x*y) =log(x) + log(y). 따라서 우리는 1에서 N까지의 모든 로그 값을 계산하는 데 필요한 최소 로그 값 수를 알 수 있습니다. 따라서 N이 6이면 출력은 log(1)에서 log(6)과 같이 3이 됩니다. log(1)을 제외한 세 개의 로그 값이 필요합니다. log(1)은 항상 0이므로 무시하십시오. 이제 log(2) 및 log(3)에 대해 찾아야 합니다. 그 후 log(4)의 경우 이것은 log(2)+ log(2)이지만 log(2)의 값을 알고 있으므로 이를 다시 계산하지 않습니다. lo

    11. C++ 프로그램에서 모든 가솔린 펌프를 방문하는 최초의 순환 투어 찾기

      원이 있고 그 원 위에 n개의 휘발유 펌프가 있다고 가정합니다. 다음과 같은 두 가지 데이터 세트가 있습니다. 모든 휘발유 펌프에 있는 휘발유의 양 한 휘발유 펌프에서 다른 휘발유 펌프까지의 거리입니다. 트럭이 원을 완성할 수 있는 첫 번째 지점을 계산합니다. 1리터 휘발유의 경우 트럭이 1단위 거리를 갈 수 있다고 가정합니다. 4개의 휘발유 펌프가 있고 휘발유의 양과 다음 휘발유 펌프까지의 거리는 [(4, 6), (6, 5), (7, 3), (4, 5)]와 같다고 가정합니다. 트럭이 순환 투어를 할 수 있는 첫 번째 지점은

    12. C++에서 완전제곱수를 만들기 위해 나눌 최소수 찾기

      숫자 N이 있다고 가정합니다. N을 완전제곱수로 나누는 최소 숫자를 찾아야 합니다. 따라서 N =50이면 50 / 2 =25이므로 최소 수는 2이고 25는 완전제곱수입니다. 다른 인수의 수가 짝수인 경우 숫자는 완전 제곱입니다. 그래서 우리는 N의 소인수를 찾고 각 소인수 거듭제곱을 찾으려고 노력할 것입니다. 거듭제곱이 홀수인 모든 소인수를 찾아 곱합니다. 예시 #include<iostream> #include<cmath> using namespace std; int findMinimumNumberToDivi

    13. C++ 프로그램에서 배열의 첫 번째, 두 번째 및 세 번째 최소 요소 찾기

      n개의 요소로 구성된 배열이 있다고 가정합니다. 배열에서 첫 번째, 두 번째 및 세 번째 최소 요소를 찾아야 합니다. 첫 번째 최소값은 배열의 최소값이고, 두 번째 최소값은 최소값이지만 첫 번째 최소값보다 크며, 유사하게 세 번째 최소값은 최소값이지만 두 번째 최소값보다 큽니다. 각 요소를 스캔한 다음 요소를 확인하고 첫 번째, 두 번째 및 세 번째 최소 요소 조건에 대한 조건을 연결하여 이 문제를 해결합니다. 예시 #include<iostream> using namespace std; int getThreeMins(i

    14. C++에서 최소한 k 점이 원 내부에 있도록 최소 반지름 찾기

      몇 개의 점과 하나의 정수 k가 있다고 가정합니다. k개의 점을 덮기 위해서는 중심이 (0, 0)인 원의 최소 반지름을 찾아야 합니다. 따라서 점이 (1, 1), (-1, -1), (1, -1) 및 k =3과 같으면 반경은 2가 됩니다. 여기에서 각 점과 (0, 0) 사이의 유클리드 거리를 찾은 다음 거리를 정렬하고 정렬 후 k번째 요소를 반환합니다. 예 #include<iostream> #include<algorithm> using namespace std; struct point{    

    15. C++에서 행렬의 끝에 도달하는 데 필요한 최소 단계 찾기

      양의 정수가 있는 2D 행렬이 있다고 가정합니다. 행렬의 끝(가장 오른쪽 맨 아래 셀)에서 이동하는 데 필요한 최소 단계를 찾아야 합니다. 셀(i, j)에 있으면 셀(i, j+mat[i, j ]) 또는 (i+mat[i, j], j), 우리는 경계를 넘을 수 없습니다. 따라서 행렬이 다음과 같은 경우 - 2 1 2 1 1 1 1 1 1 출력은 2가 됩니다. 경로는 (0, 0) →(0, 2) → (2, 2)가 됩니다. 여기서 우리는 이것을 해결하기 위해 동적 프로그래밍 접근 방식을 사용할 것입니다. 우리가 셀 (i, j)에

    16. C++에서 계승이 x로 나누어지는 첫 번째 자연수 찾기

      계승이 x로 나누어지는 첫 번째 자연수를 찾아야 합니다. x는 사용자가 제공합니다. 따라서 x =16이면 출력은 6이 됩니다. as 6! mod 16 =0. 우리는 이 문제를 해결하기 위해 일반적인 접근 방식을 사용할 것입니다. 반복적으로 1!, 2!, ...를 센다. N! x를 사용하여 나눗셈을 확인합니다. 계수가 0이면 중지하고 숫자를 반환합니다. 예시 #include<iostream> using namespace std; int getNumber(int x) {    int fact = 1; &nb

    17. C++에서 이진 트리의 수직 순서 순회에서 k 번째 노드 찾기

      이진 트리와 값 K가 있다고 가정합니다. 작업은 수직 순서 순회에서 K 번째 노드를 인쇄하는 것입니다. 그러한 노드가 없으면 -1을 반환합니다. 트리가 아래와 같다면 - 수직 순서 순회는 −와 같습니다. 4 2 1 5 6 3 8 7 9 따라서 K =3이면 결과는 1이 됩니다. 접근 방식은 간단합니다. 수직 순서 순회를 수행한 다음 현재 노드가 k번째 노드인지 확인한 다음 반환합니다. 예시 #include<iostream> #include<map> #include<vector> #include

    18. C++에서 주어진 N개의 정수 중 정확히 하나를 포함하는 가장 큰 간격 찾기

      N개의 고유한 정수 배열이 있다고 가정합니다. 간격이 주어진 N개의 정수 중 정확히 하나와 1 <=L <=R <=105를 포함하도록 간격 [L, R]에서 최대 요소를 찾아야 합니다. . 따라서 배열이 Arr =[5, 10, 200]과 같으면 출력은 99990입니다. 따라서 가능한 모든 간격은 [1, 9], [6, 199] 및 [11, 100000]입니다. 마지막 것은 99990과 같은 최대 정수를 가집니다. 아이디어는 간단합니다. 간격에 포함할 요소를 수정합니다. 이제 다른 요소를 겹치지 않고 간격을 왼쪽과 오른쪽으로 확장하는

    19. C++에서 (x % k) * (x / k) ==n이 되는 최소 x 찾기

      두 개의 양의 정수 n과 k가 주어지고 (x % k)*(x / k)가 n과 같도록 양의 정수 x를 찾아야 합니다. 따라서 n과 k가 각각 4와 6이면 출력은 10이 됩니다. 따라서 (10 % 6) * (10 / 6) =4입니다. x % k의 값이 [1 ~ k – 1] 범위에 있음을 알고 있으므로(0은 포함되지 않음) 여기서 n을 나누는 범위에서 가능한 정수를 찾을 수 있으므로 주어진 방정식은 다음과 같습니다. x =(n * k) / (x % k) + (x % k) 예시 #include<iostream> using nam

    20. C++에서 주어진 자릿수로 만들 수 있는 가장 큰 수 찾기

      숫자 배열이 있다고 가정합니다. 배열의 모든 자릿수를 사용하여 얻을 수 있는 최대 수를 찾아야 합니다. 따라서 배열이 [3, 3, 9, 6, 2, 5]와 같으면 최대 개수는 965332가 될 수 있습니다. 문제에서 숫자를 증가하지 않는 순서로 쉽게 정렬한 다음 인쇄할 수 있음을 알 수 있습니다. 그러나 보다 효율적인 방법을 사용하여 이 문제를 해결할 수 있습니다. 크기가 10인 배열 하나를 만들어 각 숫자의 빈도를 저장한 다음 그에 따라 9에서 0까지의 숫자를 인쇄할 수 있습니다. 예 #include <iostream>

    Total 5992 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:101/300  20-컴퓨터/Page Goto:1 95 96 97 98 99 100 101 102 103 104 105 106 107