一.进制转换
1.原理
因为我们对N进制转换都是通过除N取余
的方法来实现的,然后将余数的结果倒序输出。因为是倒序嘛,所以是后进先出
,那就是我们栈的模型。所以我们只需要将每次取余的结果放入栈中,最后再全部输出,就完成了我们的进制转换。
那么就举一个10转N
进制的程序吧(0<N<=36)。
2.代码实现
因为这个部分的代码比较简单,所以就直接用数组模拟栈了:
#include <stdio.h>
int main()
{
int number;
int stack[32];
int top = 0;
int N;
scanf("%d %d", &number, &N);
while(number > 0)
{
++top;
stack[top] = number % N;
number /= N;
}
while(top > 0)
{
if (stack[top] > 9)
{
printf("%c", stack[top]-10+'A');
}
else
{
printf("%c", stack[top]+'0');
}
--top;
}
printf("(%d)\n", N);
return 0;
}
二.表达式求值
啊这,这个我想把它与队列放到一起讲,因为书上并没有写队列的应用。所以我就把这个题放到队列和栈里一起讲了。