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

    1. C++에서 숫자가 뒤죽박죽인지 확인하십시오.

      여기에서 숫자가 뒤죽박죽인지 여부를 확인하는 흥미로운 문제가 하나 있습니다. 모든 숫자에 대해 인접 숫자가 최대 1만큼 다른 경우 숫자가 뒤죽박죽이라고 합니다. 예를 들어 숫자 1223은 뒤죽박죽이지만 1256은 뒤죽박죽이 아닙니다. 이 문제를 해결하려면 숫자에 1보다 큰 차이가 있는 이웃이 있는지 확인해야 합니다. 해당 숫자를 찾으면 false를 반환하고 그렇지 않으면 true를 반환합니다. 예 #include <iostream> #include <cmath> using namespace std; bool

    2. C++에서 / 및 % 연산자를 사용하지 않고 숫자가 5의 배수인지 확인

      여기서 우리는 숫자가 5의 배수인지 아닌지 확인하는 방법을 볼 것입니다. 한 가지 간단한 접근 방식은 숫자 mod 5 =0이면 숫자를 5로 나눌 수 있다는 것입니다. 그러나 여기서는 / 또는 % 연산자를 사용하지 않습니다. 숫자가 5로 나누어 떨어지는지 확인하려면 마지막 숫자가 0 또는 5인지 확인해야 합니다. 그것이 0 또는 5이면 숫자는 5로 나눌 수 있고 그렇지 않으면 그렇지 않습니다. 여기서 큰 숫자를 문자열로 사용하여 확인할 수도 있습니다. 예 #include <bits/stdc++.h> using namespa

    3. 숫자가 C++에서 회문인지 확인

      여기서 숫자가 회문인지 아닌지 확인하는 방법을 알아보겠습니다. 회문 번호는 양방향에서 동일합니다. 예를 들어, 숫자 12321은 회문이지만 12345는 회문이 아닙니다. 논리는 매우 간단합니다. 우리는 숫자를 반대로 해야 하며, 반대로 된 숫자가 실제 숫자와 같으면 회문이고 그렇지 않으면 그렇지 않습니다. 더 나은 아이디어를 얻기 위해 알고리즘을 살펴보겠습니다. 알고리즘 isPalindrome(n) - 입력 - 숫자 n 출력 - 숫자가 회문이면 true, 그렇지 않으면 false begin    temp

    4. C++에서 제곱근을 찾지 않고 숫자가 완전제곱수인지 확인

      어떤 숫자가 주어졌다고 가정하면 그 숫자가 완전제곱수인지 아닌지를 확인해야 합니다. 이를 확인하기 위해 제곱근 연산을 사용하지 않습니다. 숫자 1024가 있다고 가정하면 이것은 완전제곱수이지만 1000은 완전제곱수가 아닙니다. 논리는 간단합니다. 결과를 얻으려면 이 알고리즘을 따라야 합니다. 알고리즘 isPerfectSquare(n) - 입력 - 숫자 n 출력 - 숫자가 완전제곱수이면 true, 그렇지 않으면 false begin    for i := 1, i2 ≤ n, increase i by 1:

    5. C++에서 비트 연산자를 사용하여 숫자가 양수, 음수 또는 0인지 확인

      31에 대해 수행하면 둘 다 0을 반환합니다. 이를 위해 아래와 같은 다른 공식을 사용합니다 - 31) 이제 만약 n은 음수입니다. 1 + (-1) – 0 =0 n은 양수입니다. 1 + 0 – (-1) =2 n은 0:1 + 0 – 0 =1입니다. 예시 #include <iostream> #include <cmath> using namespace std; int checkNumber(int n){    return 1+(n >> 31) - (-n >> 31); } in

    6. C++에서 숫자가 8의 거듭제곱인지 확인

      이 섹션에서는 숫자가 8의 거듭제곱인지 또는 더 쉬운 방법을 사용하지 않는지 확인할 것입니다. 4096과 같은 숫자가 있으면 프로그램은 8의 거듭제곱이므로 true를 반환합니다. 비결은 간단합니다. log8(num)을 계산합니다. 이것이 정수이면 n은 8의 거듭제곱입니다. 여기서 tranc(n) 함수를 사용하여 double 값의 가장 가까운 정수를 찾습니다. 예시 #include <iostream> #include <cmath> using namespace std; bool isPowerOfEight(int

    7. C++에서 기본 변경 방법을 사용하여 숫자가 k의 거듭제곱인지 확인하십시오.

      여기서 우리는 하나의 숫자가 주어지면 다른 값 k도 주어지면 그 숫자가 k의 거듭제곱인지 확인해야 하는 프로그램을 볼 것입니다. 그러나 이 문제를 해결하기 위해서는 베이스 변경 방법을 수행해야 합니다. 숫자가 27이고 k =3이라고 가정합니다. 그러면 밑수 변경 방법에 의해 27은 10003이 됩니다. 여기에서 밑수를 변경한 후 숫자 1이 한 번만 발생하고 나머지는 0이면 그 숫자는 k의 거듭제곱입니다. . 이 문제를 해결하기 위해 다음 단계를 따릅니다. 단계 - 플래그 정의 :=false 0일 때 3~6단계 반복 숫자 찾

    8. 점이 C++에서 내부, 외부 또는 타원에 있는지 확인

      하나의 타원(중심 좌표(h, k) 및 반장축 a, 반단축 b)이 주어지고 다른 점도 주어진다고 가정합니다. 점이 타원 내부에 있는지 여부를 찾아야 합니다. 이를 풀기 위해서는 주어진 점(x, y)에 대해 다음 방정식을 풀어야 합니다. $$\frac{\left(x-h\right)^2}{a^2}+\frac{\left(y-k\right)^2}{b^2}\leq1$$ 결과가 1보다 작으면 점이 타원 안에 있고 그렇지 않으면 타원 안에 있습니다. 예 #include <iostream> #include <cmath> u

    9. 점이 C++에서 내부, 외부 또는 포물선 위에 있는지 확인

      하나의 포물선이 주어졌다고 가정하고(정점 좌표(h, k)와 초점과 꼭짓점으로부터의 거리가 a임), 다른 점도 주어집니다. 우리는 그 점이 포물선 안에 있는지 여부를 찾아야 합니다. 그것을 풀기 위해 우리는 주어진 점 (x, y)에 대해 다음 방정식을 풀어야 합니다. \left(y-k\right)^2=4a\left(x-h\right) 결과가 0보다 작으면 포물선 내부에 있고 0이면 포물선 위에 있고 0보다 크면 포물선 외부에 있습니다. 예시 #include <iostream> #include <cmath> u

    10. C++에서 서로에게 돈을 빌린 주어진 친구 집합 간의 현금 흐름 최소화

      친구가 거의 없다고 가정해 봅시다. 그들은 서로 돈을 빌렸습니다. 따라서 네트워크에는 약간의 현금 흐름이 있습니다. 우리의 임무는 네트워크의 현금 흐름을 최소화하는 것입니다. 세 친구 P1, P2, P3가 있다고 가정합니다. 그들 사이의 현금 흐름은 다음과 같습니다 - 이 현금 흐름은 최소가 아닙니다. 최소화해야 합니다. 그러면 최종 다이어그램은 다음과 같습니다. - 이 문제를 해결하기 위해 greedy 접근 방식을 사용합니다. 여기 각 단계에서 한 사람의 모든 금액을 정산하고 나머지 n-1명에 대해 반복합니다. 이제 질

    11. C++에서 원점에 가장 가까운 K개의 점 찾기

      점 집합이 있다고 가정합니다. 우리의 임무는 원점에 가장 가까운 K 포인트를 찾는 것입니다. 점이 (3, 3), (5, -1) 및 (-2, 4)라고 가정합니다. 그런 다음 가장 가까운 두 점(K =2)은 (3, 3), (-2, 4)입니다. 이 문제를 해결하기 위해 유클리드 거리를 기반으로 포인트 목록을 정렬한 다음 정렬된 목록에서 가장 높은 K 요소를 가져옵니다. K개의 가장 가까운 점입니다. 예시 #include<iostream> #include<algorithm> using namespace std; cl

    12. C++의 단일 순환 연결 목록에서 최소 및 최대 요소 찾기

      여기서 우리는 단일 원형 연결 선형 목록에서 최소값과 최대값을 얻는 방법을 볼 것입니다. 기본 개념은 매우 간단합니다. 마지막 노드의 다음 부분은 첫 번째 노드를 가리키고 첫 번째 노드도 시작 포인터를 사용하여 가리킵니다. 목록에 일부 요소를 삽입하면 새로 삽입된 노드의 다음 부분이 시작 노드의 주소로 업데이트됩니다. 처음에 min은 양의 무한대로 할당되고 max는 음의 무한대로 할당됩니다. 이제 왼쪽에서 오른쪽으로 목록을 탐색합니다. 현재 요소가 최소 요소보다 작으면 최소를 업데이트하고 현재 요소가 최대 요소보다 크면 최대를 업

    13. C++에서 주어진 점 세트에 대한 단순 폐쇄 경로 찾기

      점 집합이 있다고 가정합니다. 우리는 모든 점을 포함하는 간단한 닫힌 경로를 찾아야 합니다. 포인트가 아래와 같으며 다음 이미지가 해당 포인트에 닫힌 경로를 만들고 있다고 가정합니다. 경로를 얻으려면 다음 단계를 따라야 합니다 - 왼쪽 하단 점을 P로 찾습니다. P를 중심으로 시계 반대 방향으로 극각을 기준으로 다른 n – 1 점을 정렬하고 두 점의 극각이 같으면 거리가 가장 짧은 것으로 배치하십시오. 정렬된 포인트 목록을 탐색한 다음 경로를 만듭니다. 예시 #include <bits/stdc++.h&

    14. C++에서 원에 대한 좌표의 사분면 찾기

      우리는 하나의 원(중심 좌표와 반경)을 가지고 있고, 다른 주어진 점(x, y)의 사분면은 원의 중심에 대해 놓여 있어야 합니다. 이것이 원에 있으면 사분면을 인쇄하고 그렇지 않으면 오류를 인쇄합니다. 포인트가 외부에 있기 때문입니다. 원의 중심이 (h, k)이고 점의 좌표가 (x, y)라고 가정합니다. 우리는 원의 방정식이 −라는 것을 알고 있습니다. (𝑥−ℎ)2 +(𝑦−𝑘)2 +𝑟2 =0 이제 결과를 결정할 수 있는 몇 가지 조건이 있습니다. 𝑖𝑓 (𝑥−ℎ)2 +(𝑦−𝑘)2 𝑟, 𝑡ℎ𝑒𝑛 𝑡ℎ𝑒

    15. 플립플롭 유형과 C++에서의 변환

      플립플롭은 순차 디지털 회로입니다. 플립플롭에는 몇 가지 유형이 있습니다. 여기에서 플립플롭의 유형과 플립플롭 간에 변환 규칙이 표시됩니다. 플립플롭에는 기본적으로 4가지 유형이 있습니다 - SR 플립플롭 D 플립플롭 JK 플립플롭 T 플립플롭 SR 플립플롭 SR 플립플롭은 양의 클록 전환 또는 음의 클록 전환으로만 작동합니다. 반면 SR 래치는 활성화 신호로 작동합니다. SR 플립플롭의 회로도는 다음 그림과 같습니다. 이 회로에는 2개의 입력 S &R과 2개의 출력 Q(t) &Q(t)가 있습니다. SR 플립플롭의 동작

    16. C++에서 바이너리 트리가 레벨별로 정렬되었는지 확인하십시오.

      여기에서 이진 트리가 레벨별로 정렬되었는지 여부를 확인하는 방법을 볼 것입니다. 레벨별로 정렬된 이진 트리는 다음과 같습니다. - 각 수준에서 노드는 왼쪽에서 오른쪽으로 정렬되며 각 레이어는 이전 수준보다 높은 값을 포함합니다. 레벨 순서 순회를 수행하여 이 문제를 해결할 수 있고 현재 레벨의 최소 및 최대 요소를 추적할 수 있습니다. 다른 변수 prev_max를 사용하여 이전 수준의 최대값을 유지합니다. 그런 다음 현재 레벨의 최소값과 이전 레벨 prev_max의 최대값을 비교합니다. 최소값이 prev_max보다 크면 트리

    17. 이진 트리가 C++에서 다른 이진 트리의 하위 트리인지 확인

      두 개의 이진 트리가 있다고 가정합니다. 더 작은 트리가 다른 이진 트리의 하위 트리인지 여부를 확인해야 합니다. 이 두 나무가 주어졌다고 생각해 보십시오. 두 그루의 나무가 있습니다. 두 번째 트리는 첫 번째 트리의 하위 트리입니다. 이 속성을 확인하기 위해 후순위 방식으로 트리를 탐색한 다음 이 노드를 기반으로 하는 하위 트리가 두 번째 트리와 동일하면 하위 트리입니다. 예시 #include <bits/stdc++.h> using namespace std; class node {    publi

    18. 이중 연결 문자 목록이 C++에서 회문인지 확인하십시오.

      여기에서 문자열이 회문인지 이중 연결 목록을 사용하지 않는지 확인하는 방법을 살펴보겠습니다. 여기서는 문자열의 각 문자를 하나의 이중 연결 목록 안에 밀어넣을 것입니다. 왼쪽과 오른쪽의 두 포인터가 있습니다. 그런 다음 양면에서 스캔을 시작합니다. 왼쪽 문자가 오른쪽 문자와 같으면 왼쪽 포인터를 다음 노드로 이동하고 오른쪽 포인터를 이전 노드로 이동합니다. 그렇지 않으면 false를 반환합니다. 이 과정은 왼쪽과 오른쪽이 같은 노드를 가리키거나 오른쪽 포인터가 왼쪽 포인터의 이전 요소를 가리킬 때까지 계속됩니다. 예시 #includ

    19. 주어진 배열에 C++의 각 요소로부터 k 거리 내에 중복 요소가 포함되어 있는지 확인하십시오.

      여기에서는 정렬되지 않은 배열이 k 거리 내에 중복 요소가 있는지 여부를 확인하는 방법을 볼 것입니다. 요소 목록이 {1, 2, 3, 1, 4, 5}라고 가정하고 여기에서 k =3이면 두 1 사이의 거리가 3이므로 프로그램은 true를 반환합니다. 우리는 해시 테이블을 사용하여 이것을 해결할 것입니다. 단계는 아래와 같습니다 - 빈 해시 테이블 하나 만들기 각 인덱스 i에 대해 목록의 요소 e =arr[i]를 do 해시 테이블에 e가 있으면 true를 반환합니다. =K일 때 해시 테이블에 e를 추가하고 해시 테이블에서 (i-k)

    20. 주어진 이진 트리가 C++에서 SumTree인지 확인하십시오.

      여기서는 이진 트리가 합 트리인지 여부를 확인하는 방법을 살펴보겠습니다. 이제 문제는 sum-tree가 무엇이냐는 것입니다. 합계 트리는 노드가 자식의 합계 값을 보유하는 이진 트리입니다. 트리의 루트에는 그 아래에 있는 모든 요소의 전체 합계가 포함됩니다. 이것은 sum-tree의 예입니다 - 이를 확인하기 위해 우리는 간단한 트릭을 따를 것입니다. 합 값이 루트와 같으면 왼쪽 및 오른쪽 하위 트리 요소의 합을 찾고 그것이 합 트리입니다. 이것은 하나의 재귀적 접근 방식이 될 것입니다. 예 #include <bits/s

    Total 5992 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:82/300  20-컴퓨터/Page Goto:1 76 77 78 79 80 81 82 83 84 85 86 87 88