Điểm:
800 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Nam được cô giáo giao một bài tập để củng cố kiến thức, bài toán yêu cầu tính tổng một dãy số. Nam đã giải quyết được bài toán nhưng cần kiểm tra lại kết quả của mình đã chính xác hay chưa. Bạn hãy lập trình để giúp Nam với yêu cầu bài toán như sau:
Cho số nguyên dương \(N (N ≤ 10^6)\).
Yêu cầu:
- Tính tổng S(N) = 1.3 + 2.4 + 3.5 +…+ N.(N+2)
Input
- Dòng thứ nhất: Nhập số nguyên dương T là số lượng test (\(1 ≤ T ≤ 10^5\)).
- T dòng tiếp theo, mỗi dòng nhập một số nguyên dương N.
Output
- Xuất ra màn hình gồm T dòng, mỗi dòng một số S(N) là tổng tương ứng với test đã cho.
Ví dụ
Input
2
3
5
Output
26
85
Giải thích:
T = 2 nghĩa là có 2 test dữ liệu vào.
- Test 1: N = 3 thì S(3) = 1.3 + 2.4 + 3.5 = 26.
- Test 2: N = 5 thì S(5) = 1.3 + 2.4 + 3.5 + 4.6 + 5.7 = 85.
Bình luận
code python siêu dễ :))
code cho ai cần
include <bits/stdc++.h>
define int long long
using namespace std;
int t,prefix[1000005];
main(){
prefix[0] = 0;
for (int i = 1;i <= 1000005;i++) prefix[i] = prefix[i - 1] + i*(i+2);
cin >> t;
while(t--){
int n;
cin >> n;
cout << prefix[n] << endl;
}
}
sử dụng tổng tiền tố là được nhé
Đặt E = 1.3 + 2.4 + 3.5 +…+ n.(n+2)
E = 1 . (1 + 2) + 2 (2 + 2) + 3 (3 + 2) + … + n (n + 2)
= 1 . 1 + 1. 2 + 2 . 2 + 2. 2 + … + n . n + n . 2
= (1 . 1 + 2 . 2 + … + n . n) + 2(1 + 2 + 3 + … + n)
= (1 ^ 2 + 2 ^ 2 + … + n ^ 2) + 2.n (n + 1) // 2
= n(n + 1)(2n + 1) // 6 + n (n + 1)
Vậy kq của bài toán là n * (n + 1) * (2 * n + 1) // 6 + n * (n + 1)
code
Tự code đi 🙂
n * (n + 1) * (2 * n + 7) / 6; cho ai tên duck=)
Hint
s(n)=(nx(n+1)x(2xn+7))/6
include <iostream>
using namespace std;
int main ()
{
int t,i=1;
cin>>t;
long long n[t+1];
for (int g=1;g<=t;g++)
{
cin>>n[g];
}
while (i<=t)
{
long long s=0;
for (int z=1;z<=n[i];z++)
s=s+z*(z+2);
cout<<s<<endl;
i++;
}
return 0;
}
s ko nộp bài đc v