2013-11-21 1 views
0

그래서 기본 10 정수를 변환하고 정수의 이진수를 인쇄하는 C++에서이 함수를 작성하라는 메시지가 나타납니다. 스택을 사용하여 문제를 해결해야합니다. 내 함수에서 재귀를 사용할 수 없습니다.기본 10을 스택을 사용하여 이진으로 변환하는 함수

여기 내 생각 엔 : 전환을 수행하는 동안 1s와 0을 스택으로 밀어 넣기 시작하면서 순서가 바뀔 것이므로 (다른 생각으로) 스택을 다른 스택으로 이동해야합니다. 명령을 수행 한 후 복사 된 스택의 맨 위부터 가져 와서 인쇄 한 다음 함수가 멤버 함수가 아니기 때문에 다음 번호를 얻기 위해 팝업을 인쇄하면 임의로 멤버에 액세스 할 수 없습니다.

내 방법이 올바른지 알아야하며 변환 방법을 정확히 알지 못합니다. 여기

+0

그게 네가 생각하는 것이지만, 너는 무엇을 시도 했는가? –

+0

구현을 시도해 보셨습니까? 그렇지 않다면, 무엇이 당신을 멈추게하고, 그것을 극복하려고 시도 했습니까? 그렇다면 코드, 오류 메시지 또는 출력뿐만 아니라 출력 결과를 알려주십시오. – anjruu

답변

0

당신은 갈 : -

#include<iostream> 
#include<stack> 
using namespace std; 
int main() 
{ 
    int number; 
    cin>>number; 
    stack<int> binary; 
    while(number>1) 
    { 
     binary.push(number%2); 
     number /= 2; 
    } 
    cout<<1; 
    while(!binary.empty()) 
    { 
     cout<<binary.top(); 
     binary.pop(); 
    } 
    return 0; 
} 

팁 : 재귀가 할 수있는 무엇이든

  1. 이 또한 할 수있는 루프.
  2. 아이디어가 있다면 항상 먼저 구현하십시오. 실패하면 질문 할 수 있습니다.
관련 문제