assignment1_without_iterator && assignment2 by 13307130284