30/09/2018, 16:24

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;
}
Nguyễn Minh Dũng viết 18:40 ngày 30/09/2018

Đâ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;
TTmagic viết 18:40 ngày 30/09/2018

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

Nguyễn Minh Dũng viết 18:33 ngày 30/09/2018

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

... viết 18:41 ngày 30/09/2018

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;
}
Bài liên quan
0