设计一个算法,输入一个十进制正整数d和进制数n(n≤10),在算法中用printf输出其相对应的n进制数,引入栈或队列的基本算法完成此算法
时间: 2023-05-30 22:06:17 浏览: 72
1. 引入栈的算法:
Step 1:先将d除以n,得到商和余数,余数入栈。
Step 2:将商作为新的d,重复Step 1,直到商为0。
Step 3:将栈中的余数依次输出即可。
C++代码实现:
#include <iostream>
#include <stack>
using namespace std;
void decimalToN(int d, int n) {
stack<int> s;
while (d) {
s.push(d % n);
d /= n;
}
while (!s.empty()) {
cout << s.top();
s.pop();
}
}
int main() {
int d, n;
cin >> d >> n;
decimalToN(d, n);
return 0;
}
2. 引入队列的算法:
Step 1:先将d除以n,得到商和余数,余数入队列。
Step 2:将商作为新的d,重复Step 1,直到商为0。
Step 3:将队列中的余数依次输出即可。
C++代码实现:
#include <iostream>
#include <queue>
using namespace std;
void decimalToN(int d, int n) {
queue<int> q;
while (d) {
q.push(d % n);
d /= n;
}
while (!q.empty()) {
cout << q.front();
q.pop();
}
}
int main() {
int d, n;
cin >> d >> n;
decimalToN(d, n);
return 0;
}
阅读全文