C++ Integer
An unsigned integer can only hold nonnegative values
cout << j << endl; // will print very large positive integer
Assigning a negaitve value to an unsigned variable is confusing
Integer division involving negative numbers is platform dependent, but following equality must be preserved: a == (a / b) * b + a % b