N을 초과하지 않고 S에 어떤 숫자도 포함하지 않는 가장 큰 수
주어진 숫자 N을 초과하지 않고 문자열 S에 어떤 숫자도 포함하지 않는 가장 큰 숫자를 찾는 문제는 문자열 조작 및 숫자 이론과 관련된 문제입니다. N보다 작거나 같고 문자열 S에 있는 모든 숫자도 제외됩니다.
예를 들어 N이 1000이고 S가 "42"인 시나리오를 생각해 보세요. 이 경우 N을 넘지 않고 S에 어떤 숫자도 포함하지 않는 가장 큰 수는 999이다. 999는 문자열 S에서 숫자 4와 2를 제외하고 숫자 0, 1, 3, 5, 6, 7, 8, 9를 사용하여 형성할 수 있는 가장 큰 숫자이기 때문입니다.
이 문제를 해결하기 위해 N까지의 모든 숫자를 반복하고 해당 숫자가 S에 없는지 확인하거나 동적 프로그래밍 또는 역추적과 같은 더 복잡한 방법을 활용하는 등 다양한 접근 방식을 사용할 수 있습니다.
알고리즘
1단계 − main() 함수에서 'N'과 'S'라는 두 개의 문자열 변수를 선언합니다.
2단계 - 이 두 변수를 LargestNumberFinder() 함수에 매개변수로 전달합니다.
3단계 − 비교와 같은 수학 연산을 수행하기 위해 문자열 숫자 N과 S를 암시적으로 정수로 변환합니다.
4단계 - 수동으로 또는 매번 동일한 작업을 수행하는 함수를 생성하여 N에 저장된 숫자에서 선행 0을 제거합니다.
5단계 − 그런 다음 두 문자열의 숫자를 비교하고 문자열 'S'에서 어떤 숫자도 포함하지 않는 'N' 이하로 구성된 가장 큰 숫자가 무엇인지 알아냅니다.
접근 방식 1: - 순진한 접근 방식
다른 문자열의 모든 숫자를 사용하여 주어진 문자열에서 가장 큰 숫자를 찾는 기본 방법은 다음과 같습니다. 기본 함수는 변수를 선언하고 LargestNumberFinder 함수를 호출합니다. 이 함수는 두 개의 문자열을 입력으로 사용하고 문자열 S의 모든 숫자를 포함하는 N보다 작은 모든 값을 확인합니다. 조건이 충족되면 값이 문자열 형식으로 반환됩니다. 출석 함수는 S를 정수 데이터 유형으로 변환하는 동안 'i'에 저장된 값이 문자열 S의 일부인지 확인하는 데 사용됩니다. 입력 문자열은 정수로 변환되고 루프를 사용하여 조건을 평가합니다. 이 코드는 다른 문자열에도 존재하는 특정 문자열의 모든 숫자의 최대값을 출력합니다.
Example
은 다음과 같이 번역됩니다.Example
이 코드는 문자열 S의 숫자로 구성된 N(입력 문자열을 정수로 변환)보다 작은 가장 큰 숫자를 찾는 솔루션입니다. 이 코드는 'attendance'와 'LargestNumberFinder'라는 두 가지 함수를 활용하여 가장 큰 숫자를 결정하고 반환합니다. 출석 함수는 정수 'i'와 문자열 's'를 입력으로 받아 'i'에 저장된 값이 문자열 's'의 일부인지 확인하고 's'를 정수 데이터 유형으로 변환합니다. LargestNumberFinder 함수는 두 개의 문자열 'x'와 's'를 입력으로 받아 'x'를 정수로 변환한 다음 Attention 함수를 사용하여 N보다 작은 모든 값과 모든 숫자가 's'에 있는지 확인합니다. 주 함수는 변수를 선언하고 가장 큰 숫자를 문자열로 반환하는 LargestNumberFinder 함수를 호출합니다.
으아악출력
으아악방법 2: 효율적인 방법
주어진 숫자 문자열 N의 숫자를 주어진 문자열 S의 숫자로 대체하여 가능한 가장 큰 숫자를 얻는 문제 2에 대한 해결책은 효율적인 접근 방식입니다. 이 방법은 먼저 N의 모든 숫자가 S에 있는지 확인하고 S에서 발견된 첫 번째 숫자를 N에 없는 S의 가장 큰 숫자로 바꿉니다. 나머지 숫자는 N이 아닌 S에서 가장 큰 숫자로 대체됩니다. 그런 다음 선행 0이 제거되고 결과는 가능한 가장 큰 숫자로 반환됩니다. 이 방법은 문자열을 정렬할 필요가 없기 때문에 이전 방법보다 더 효율적입니다.
Example
은 다음과 같이 번역됩니다.Example
이 코드는 가장 큰 숫자를 문자열 "S"에 없는 가장 높은 숫자로 대체하여 주어진 문자열 "N"에서 구성될 수 있는 숫자를 찾는 문제를 해결합니다. LargestNumberFinder 함수는 "num"과 "s"라는 두 개의 문자열 입력을 받아 가능한 가장 큰 숫자를 반환합니다. 벡터 "vis_s"는 문자열 "s"의 값을 저장하는 데 사용됩니다. 그런 다음 해당 숫자를 문자열 "s"에 없는 가장 높은 숫자로 바꿉니다. 그런 다음 코드는 문자열 "s"에 없는 가장 높은 숫자를 찾아 나머지를 바꿉니다. 해당 숫자가 있는 문자열 "num"의 숫자. 마지막 문자열에서 선행 0이 제거되고, 문자열이 비어 있으면 코드는 입력 "N" 및 "를 사용하여 함수를 호출하여 결과를 출력합니다. 으" .
#include <iostream> #include <string> #include <vector> using namespace std; // function to check for all values of String N with String S and replacing the digit if found same with the largest possible digit not present in S. string LargestNumberFinder(string num, string s) { vector<bool> vis_s(10, false); for (int i = 0; i < (int)s.size(); i++) { vis_s[int(s[i]) - 48] = true; } int n = num.size(); int in = -1; for (int i = 0; i < n; i++) { if (vis_s[(int)num[i] - '0']) { in = i; break; } } if (in == -1) { return num; } for (char dig = num[in]; dig >= '0'; dig--) { if (vis_s[(int)dig - '0'] == 0) { num[in] = dig; break; } } char LargestDig = '0'; for (char dig = '9'; dig >= '0'; dig--) { if (vis_s[dig - '0'] == false) { LargestDig = dig; break; } } for (int i = in + 1; i < n; i++) { num[i] = LargestDig; } int Count = 0; for (int i = 0; i < n; i++) { if (num[i] == '0') Count++; else break; } num.erase(0, Count); if ((int)num.size() == 0) return "0"; return num; } int main() { string N = "161516"; string S = "756"; cout << LargestNumberFinder(N, S); return 0; }
Output
149999
结论
通过这篇文章,我们更接近理解这些问题背后的原因,并理解了这些概念,这些概念将帮助我们在之前提到的重大实际问题中使用这些基本概念。就像在我们的代码中,我们分别解决每个问题,然后像制作美丽的手工品一样将代码缝合在一起,同样,我们将使用这个概念,尝试逐个解决问题。我们通常会从朴素的方法开始,但通过敏锐的眼光和努力,我们会找到更高效的方法。谁知道在阅读完这篇文章后,你会找到更好、更高效的方法,并进一步简化解决方案。所以,让我们坚持我们的信念和对思维和编码的信任,同时告别。
위 내용은 N을 초과하지 않고 S에 어떤 숫자도 포함하지 않는 가장 큰 수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











대기는 iPhone이 충전기에 연결되어 있고 가로(또는 가로) 방향일 때 활성화되는 잠금 화면 모드입니다. 세 가지 화면으로 구성되어 있으며 그 중 하나는 전체 화면 시간으로 표시됩니다. 시계 스타일을 변경하는 방법을 알아보려면 계속 읽어보세요. StandBy의 세 번째 화면에는 수직으로 스와이프할 수 있는 다양한 테마의 시간과 날짜가 표시됩니다. 일부 테마에는 온도나 다음 알람과 같은 추가 정보도 표시됩니다. 시계를 길게 누르면 디지털, 아날로그, 세계, 태양광, 플로팅 등 다양한 테마 간에 전환할 수 있습니다. Float는 사용자 정의 가능한 색상의 큰 거품 숫자로 시간을 표시하고, Solar는 다양한 색상의 태양 플레어 디자인을 갖춘 보다 표준적인 글꼴을 가지며, World는 강조 표시하여 세계를 표시합니다.

난수 또는 영숫자 문자열을 생성하는 기능은 많은 상황에서 유용합니다. 이를 사용하여 게임의 다양한 위치에 적이나 음식을 생성할 수 있습니다. 또한 이를 사용하여 사용자에게 임의의 비밀번호를 제안하거나 파일 이름을 만들어 파일을 저장할 수도 있습니다. 나는 PHP에서 임의의 영숫자 문자열을 생성하는 방법에 대한 튜토리얼을 작성했습니다. 나는 이 게시물의 시작 부분에서 실제로 무작위인 이벤트는 거의 없으며 난수나 문자열 생성에도 동일하게 적용된다고 말했습니다. 이 튜토리얼에서는 JavaScript에서 의사 난수 영숫자 문자열을 생성하는 방법을 보여 드리겠습니다. JavaScript에서 난수 생성하기 난수 생성부터 시작해 보겠습니다. 가장 먼저 떠오르는 메서드는 부동 소수점을 반환하는 Math.random()입니다.

숫자를 출력으로 표현하는 것은 어떤 언어로든 프로그램을 작성할 때 흥미롭고 중요한 작업입니다. 정수 유형(짧은, 긴 또는 중간 유형의 데이터)의 경우 숫자를 출력으로 표현하는 것이 쉽습니다. 부동 소수점 숫자(float 또는 double 유형)의 경우 때로는 특정 소수 자릿수로 반올림해야 합니다. 예를 들어 52.24568을 소수점 세 자리로 표현하려면 일부 전처리가 필요합니다. 이 기사에서는 반올림을 통해 부동 소수점 숫자를 특정 소수 자릿수로 표현하는 몇 가지 기술을 소개합니다. 다양한 접근 방식 중에서 C와 유사한 형식 문자열을 사용하고, 정밀도 인수를 사용하고, 수학 라이브러리의 round() 함수를 사용하는 것이 중요합니다. 하나씩 살펴보겠습니다. ~와 함께

우리 모두는 2, 3, 5, 7, 8 등과 같이 어떤 숫자의 제곱도 아닌 숫자를 알고 있습니다. N개의 정사각형이 아닌 숫자가 있으며 모든 숫자를 아는 것은 불가능합니다. 그래서 이 글에서는 제곱이 없는 숫자나 제곱이 아닌 숫자에 대한 모든 것과 C++에서 N번째 제곱이 아닌 숫자를 찾는 방법을 설명할 것입니다. N번째 비제곱수 어떤 숫자가 정수의 제곱인 경우, 그 숫자를 완전제곱수라고 합니다. 완전제곱수의 몇 가지 예는 다음과 같습니다. -1issquareof14issquareof29issquareof316issquareof425issquareof5 숫자가 정수의 제곱이 아닌 경우 해당 숫자를 제곱이 아닌 숫자라고 합니다. 예를 들어, 처음 15개의 정사각형이 아닌 숫자는 -2,3,5,6입니다.

PHP 프로그래밍 언어에서 is_numeric() 함수는 변수나 값이 숫자인지 확인하는 데 사용되는 매우 일반적으로 사용되는 함수입니다. 실제 프로그래밍에서는 사용자가 입력한 값이 숫자형인지 확인해야 하는 경우가 많습니다. 이 경우 is_numeric() 함수를 사용하여 확인할 수 있습니다. 1. is_numeric() 함수 소개 is_numeric() 함수는 변수나 값이 숫자인지 감지하는 데 사용되는 함수입니다. 변수 또는 값이 숫자인 경우 tru를 반환합니다.

Java의 숫자 Number 클래스는 유형 클래스가 아니라 추상 클래스라는 점을 이해하는 것이 중요합니다. 그 안에는 기능을 정의하는 래퍼 클래스 세트가 있습니다. 이러한 래퍼 클래스에는 Integer, Byte, Double, Short, Float 및 Long이 포함됩니다. 이는 앞서 논의한 것과 동일한 기본 데이터 유형이지만 클래스 명명 규칙을 따르기 위해 대문자 이름을 사용하여 별도의 클래스로 표시됩니다. 컴파일러는 특정 기능이나 프로그램 범위에 필요한 대로 기본 데이터 유형을 객체로 또는 그 반대로 자동으로 변환하며 숫자 클래스는 java.lang 패키지의 일부입니다. 이 프로세스를 오토박싱 및 언박싱이라고 합니다. 숫자 클래스와 그에 상응하는 래퍼 클래스의 추상적 성격을 파악함으로써 다음을 수행할 수 있습니다.

이 글에서는 2와 10 사이의 어떤 숫자로도 나누어지지 않는 1과 n 사이의 숫자(주어진 숫자)를 찾는 문제에 대해 논의할 것입니다. 몇 가지 예를 통해 이를 이해해 보겠습니다. 입력:num=14Output:3Explanation:나누 수 없는 세 개의 숫자 1,11,13이 있습니다.Input:num=21Output:5Explanation:나누 수 없는 다섯 개의 숫자 1,11,13,17,19가 있습니다. 해결된 경우 간단한 방법입니다.

수학에서 5의 나눗셈 법칙은 숫자가 0이나 5로 끝나면 5로 나누어진다는 것입니다. 5의 나눗셈 규칙을 결정하는 또 다른 방법이 있습니다. 나머지가 0이면 5로 나눌 수 있는 숫자를 반환합니다. mod(%) 연산자는 정수 나누기 프로그래밍에 일반적으로 사용됩니다. 예를 들어 보겠습니다. 주어진 숫자는 525이고, 숫자는 5로 끝나며 5로 나누어집니다. 주어진 숫자는 0으로 끝나고 5로 나누어지는 7050입니다. 주어진 숫자는 0과 5로 끝나지 않고 5로도 나누어지지 않는 678입니다. 이번 글에서는 숫자가 5로 나누어지는지에 대한 문제를 풀어보겠습니다. 알고리즘 다음 단계에서는 java.util.* 패키지를 사용하여 기본 데이터 유형의 사용자 입력을 얻습니다. 메인 클래스에서
