Toán tử điều kiện

Đề bài thế này: tính tổng T=1-2+3-4+…+n bằng đệ quy

Bác nào rành về toán tử điều kiện cho e hỏi về 1 đoạn code này 1 chút, khi làm bài tập e vô tình gặp được, ngắn gọn xúc tích tới mức không hiểu hết được. Theo e được học thì chỉ mới biết toán tử điều kiện dùng như thế này /condition?result1:result2/ còn chỗ /n & 1 ? 1 : -1/ thì e chưa hiểu lắm, bác nào giải thích giúp e với! e cám ơn!

int tinh_T2(int n) 
{
	return n > 0 ? n*(n & 1 ? 1 : -1) + tinh_T2(n - 1) : 0;
}
1 Like

Đây là toán tử điều kiện rút gọn thôi. Không nên sử dụng cái này nhiều.

điều kiện ? đúng thì thực hiện cái này : sai thì thực hiện cái này;
1 Like

dùng cái này hại não lắm :)) đã thế nó lại còn lồng 2 cái vào 1 dòng nữa chứ :v

2 Likes

Khi lập trình lúc nào cũng phải tâm niệm rằng

code của mình viết sau này sẽ được bảo trì bởi một thằng tâm thần có khuynh hướng bạo lực và nó biết nhà mình ở đâu :worried:

5 Likes

Viết lại thành thế này cho dễ nhìn hơn:

#include <iostream>
using namespace std;

int sum(int n)	{

	if(n == 0) {

		return 0;
        }
	return sum(n-1) + ((n & 1)? n : (-n));
}

int main() {
	
	cout << sum(10) << endl;
	return 0;
}
1 Like

Hồi trước mình cũng đã từng làm như thế này. Nhưng từ khi sau 2 tháng đọc lại code thì thề không bao giờ làm như thế này nữa.

Trong code người ta có 1 cái tính gọi là tính rõ ràng(hay minh bạch), và cái này không phải :smile:

Vậy nên quên nó và tìm môt code khác dễ hiểu hơn :))

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