Nhờ chỉ hướng đi cho bài tập sắp xếp các chữ số của 1 số theo thứ tự tăng dần

Trông hơi hư cấu nhỉ :v nhưng sao chia lấy dư lần 2 là 3, mà số cuối cùng là 12?

À viết nhầm, hihi. Để edit lại. Tại nãy viết hơi vội ko có xem lại.

Mình thấy vụ chữ số 0. Nếu có 0 trong số ban đầu thì khi sắp xếp xong là đẩy hết lên hàng cao nhất. Thế nên trong kết quả là các chữ số 0 bị loại hết.
Case switch nên được viết như sau:

while (n > 0) {
		switch(n % 10) {
			case 1: ++scs1; break;
			case 2: ++scs2; break;
			case 3: ++scs3; break;
			case 4: ++scs4; break;
			case 5: ++scs5; break;
			case 6: ++scs6; break;
			case 7: ++scs7; break;
			case 8: ++scs8; break;
			case 9: ++scs9; break;
			default: break;
		}
		n /= 10;
	}

Còn tính ra số mới thì tính từ hàng cao nhất sẽ dễ hơn. Ví dụ muốn thêm chữ số 5 vào đằng sau số thì chỉ cần Output = Output * 10 + 5;

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?