30/09/2018, 18:43

Hàm xử lý số mũ

Mình có 1 bài tập thế này: input vào là 12345 thì output ra là 1 danh sách liên kết 5->4->3->2->1.
Input là 1 chuỗi kí tự và hàm xử lý từ chuỗi sang linked list được viết như sau:

class digitList
{
public:
	int digit; // giá trị của nút
	digitList*	nextDigit; // nút kế tiếp

public:
	digitList():digit(0), nextDigit(NULL){}
	digitList(int d, digitList *next):digit(d), nextDigit(next){}
}
digitList *digitize(char str[80]) {
	digitList*	L = 0; 
	digitList*	node;
	int i;
	for(i = 0; i< strlen(str); i++) {
		if(str[i] < '0' || str[i] > '9')	break;
                node = new digitList(str[i] - '0', L);
		L = node;
	}
	return L;
}

Tuy nhiên cũng có trường hợp input đưa vào là 123^4 nên cần phải sửa lại hàm digitize. Nhưng cũng lại có trường hợp input là 123^2^3 nên phải sửa hàm digitize thành… hàm đệ quy. Mà tới đoạn này thì mình bí…

Bài liên quan
0