재귀를 사용하여 기본 10에서 변환하는 간단하고 흥미로운 방법

👋히엘루 여러분! 🔥🚀



위에서 읽은 것처럼 재귀의 힘을 사용하여 숫자를 10진수에서 더 작은 진수로 변환하는 정말 훌륭하고 흥미로운 방법을 보여드리겠습니다.💪


코드로 이동하기 전에 프로그램이 어떤 입력을 받을 수 있는지 이해할 수 있도록 몇 가지 관찰 사항을 나열하겠습니다.
  • 변수가 선언됩니다. 입력 숫자에 대해 unsigned long long이 있으므로 2^64 - 1까지 모든 양수를 입력할 수 있습니다. 여기서는 변환 대상으로 선택할 수 있는 밑으로 unsigned short를 사용했습니다. 2진법부터 10진법까지 선택할 수 있습니다.
  • 검증 및 기타 항목을 고려해야 하는 실제 시나리오보다는 아이디어에 집중했습니다. 물론 이 코드를 확장하여 10부터 기반을 지원하고 빠른 변환과 같은 작업을 수행할 수 있지만 이러한 내용은 나중에 다루겠습니다.
  • C++ 프로그래밍 언어를 사용했습니다.



  • 그래서, 아이디어는 무엇입니까?🤔🤔



    일반적으로, 우리는 숫자가 0이 될 때까지 반복적으로 숫자를 밑으로 나눈 다음 나머지 모든 나눗셈을 역순으로 취하고 이것이 새로운 숫자입니다. 이 프로세스는 힘들고 추가 변수가 필요합니다.

    재귀는 여기서 잘 작동합니다. 기본 케이스에 도달할 때까지(숫자가 0이 됨) 새 숫자를 나눈 동일한 함수를 재귀적으로 호출한 다음 재귀의 스택 프레임이 끝에서 시작하여 역순으로 다시 시작됩니다. 이제 메모리에서 함수 호출로 인한 모든 스택 프레임에는 숫자가 포함되어 있으며 우리가 해야 할 유일한 일은 모든 스택 프레임에 대한 마지막 명령으로 [그 숫자] % [기본]을 인쇄하는 것입니다.


    코드입니다🔥




    #include <iostream>
    using namespace std;
    
    
    void Convert(unsigned long long Number, const unsigned short BaseToConvert)
    {
        if (Number)
        {
            Convert(Number / BaseToConvert, BaseToConvert);
            cout << Number % BaseToConvert;
        }
    }
    
    
    int main()
    {
        unsigned long long number; cout << "Number to convert: "; cin >> number;
    
        unsigned short baseToConvert; cout << "\nNew base: "; cin >> baseToConvert;
    
        cout << "\nNumber converted: "; Convert(number, baseToConvert); cout << '\n';
        return 0;
    }
    
    



    읽어주셔서 감사합니다!😃
    나는 당신이 읽는 것을 즐겼고 이것이 흥미로웠기를 바랍니다.


  • 엠마누엘 루수
  • GitHub
  • 를 방문할 수 있습니다.
  • 또는
  • 에서 나를 찾을 수 있습니다.
  • 다음 주제: 소수 알고리즘 - 소개
  • 다음에 또 만나요! 👋
  • 좋은 웹페이지 즐겨찾기