将十进制的a转换为b进制下的数
1.使用堆栈 更简洁
#include<stack>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
stack<int> s;
if (m == 0)
cout << "0";
while (m)
{
s.push(m % n);
m /= n;
}
while (!s.empty())
{
cout << s.top();
s.pop();
}
}
2.不用堆栈,数组下标繁琐
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
int c = 0;
int d = 1;
int n = 0;
int m[100] = { 0 };
while (a)
{
c = 0;
int aa = a;
while (aa / b)
{
aa /= b;
c++;
}
int cc =c;
d = 1;
while (cc--)
{
d *= b;
}
m[c] = a / d;
a = a%d;
if (c > n)
n = c;
}
for (int i = n; i>=0; i--)
{
if (i < n)
cout << " ";
cout << m[i];
}
}