Loading Now

EditCode

Vào năm 2222 khoa học phát triển, máy tính có tốc độ xử lý nhanh hơn gấp tỷ lần so với những năm 2020, Hải vừa làm xong bài tập của thầy giáo giao cho, Hải  viết được một hàm như sau:

int editCode(long long n){
	// n<10^18
	const int d = 1000000007;
	long long result=0;
	for (long long i=0; i<=n; i++){
		long long a = i%d;
		long long b = (n-i+1)%d;
		result = (result + (a*b)%d) %d;
	}
	return result;
}

Tuy nhiên thầy giáo của Hải lại không hài lòng vừa cách làm này của Hải, thầy nói rằng chương trình này của Hải chỉ có thể chạy ở thời điểm hiện tại (năm 2222) chứ năm 2020 không thể chạy được chương trình đó.

Hải rất buồn và quyết định dùng cỗ máy thời gian về năm 2020 để nhờ những bạn trong codelean.io giúp đỡ.

Hải đã tạo ra 15 test case có input là n và output là editCode(n) theo thuật toán của Hải. Bạn hãy viết một hàm tương tự cũng với tham số truyền vào là n và cho output giống hệt thuật toán ban đầu của Hải.

Đầu vào/Đầu ra:

  • [Thời gian chạy] 0.5s với C++, 3s với Java và C#, 4s với Python, Go và JavaScript.

  • [Đầu vào] Long: n
    1 ≤ n ≤ 1018.

  • [Đầu ra] Integer
    Kết quả của hàm editCode(n) của Hải.



Author: Phan Đức Hải

Fanpage: CodeLearn.io

Group: Codelearn – Tự học lập trình C#, C++, Java, Python,Basic algorithms.

Post Comment

Contact