<StackOfInteger.h>
#ifndef STACK_H
#define STACK_H
class StackOfIntegers
{
public:
StackOfIntegers();
bool empty();
int peek();
int push(int value);
int pop();
int getSize();
private:
int elements[100];
int size;
};
#endif
<StackOfInteger.cpp>
#include \"StackOfIntegers.h\"
StackOfIntegers::StackOfIntegers()
{
size = 0;
}
bool StackOfIntegers::empty()
{
return (size == 0);
}
int StackOfIntegers::peek()
{
return elements[size - 1];
}
int StackOfIntegers::push(int value)
{
return elements[size++] = value;
}
int StackOfIntegers::pop()
{
return elements[--size];
}
int StackOfIntegers::getSize()
{
return size;
}
<TestStackOfInteger.cpp>
#include <iostream>
#include \"StackOfIntegers.h\"
using namespace std;
int main()
{
StackOfIntegers stack;
int n;
cout<<\"숫자 입력: \";
cin>>n;
cout<<endl;
if (n==1)
{
cout<<n<<endl;
}
for(int i=2; i<=n; i++)
{
if(n%i==0)
{
n=n/i;
stack.push(i);
while (!stack.empty())
cout<<stack.pop()<<\" \";
}
}
cout<<endl;
return 0;
}
소인수 분해는 되는데 StackOfInteger 클래스를 이용해서
역순으로 출력해야되는거거든여
근데 안됨므 ㅜㅜ
뭐가 잘못됬는지 지적좀 부탁부탁
소인수분해가 참 잘도 되겠습니다?
잘되는뎅
클래스이용해서 소인수들 역순으로 출력하는게 문제임
http://codepad.org/RSQ34iYR
n=16.