例一:数制转换
算法基于原理:
N = (N div d) * d + N mod d
十进制转化为八进制数:除八取余;
十进制转化为二进制数:除二取余;
B :二进制数。 Q :八进制数。 D :十进制数。 H :十六进制数。
例如:(1348)D = (2504)Q
运算过程:(商为0时结束)
N N div 8 N mod 8
1348 168 4
168 21 0
21 2 5
2 0 2
void conversion(){
InitStack(&S);
scanf("%d", N);
while(N){
Push(S, N % 8);
N = N / 8;
}
while(!StackEmpty(S)){
Pop(S, e);
printf("%d", e);
}
}//conversion
例二:括号匹配的检验
算法基于原理:
N = (N div d) * d + N mod d
十进制转化为八进制数:除八取余;
十进制转化为二进制数:除二取余;
B :二进制数。 Q :八进制数。 D :十进制数。 H :十六进制数。
例如:(1348)D = (2504)Q
运算过程:(商为0时结束)
N N div 8 N mod 8
1348 168 4
168 21 0
21 2 5
2 0 2
void conversion(){
InitStack(&S);
scanf("%d", N);
while(N){
Push(S, N % 8);
N = N / 8;
}
while(!StackEmpty(S)){
Pop(S, e);
printf("%d", e);
}
}//conversion
例二:括号匹配的检验