#include void print_in_octal(int N, unsigned int mask, int shift) { if (mask == 0) return; const int digit = (N & mask) >> shift; cout << digit; print_in_octal(N, mask >> 3, shift - 3); } void print_in_octal_no_zeros(int N, unsigned int mask, int shift) { if (mask == 0) { cout << "0"; return; } const int digit = (N & mask) >> shift; if (digit == 0) print_in_octal_no_zeros(N, mask >> 3, shift - 3); else { cout << digit; print_in_octal(N, mask >> 3, shift - 3); } } void print_in_octal(unsigned int N) { const int first = (N & 0xC0000000) >> 30; if (first == 0) print_in_octal_no_zeros(N, 0x38000000, 27); else { cout << first; print_in_octal(N, 0x38000000, 27); } } int main() { cout << "Enter a number: "; const int x = read_int(); print_in_octal(x); cout << "\n"; }