Một tổng S
có dạng giống như sau: S = 1^3 + 3^3 + 5^3 + ... +
(2n-1)^3.
Cho trước một số nguyên n
, bạn hãy viết hàm trả về tổng S
theo công thức giống như trên. Nếu không tính được tổng S
thì hãy trả về -1
.
Ví dụ:
- Với
n = 7
thìsum_of_cubes_odd_number(n) = 4753.
- Với
n = 13
thìsum_of_cubes_odd_number(n) = 56953.
- Với
n = 27
thìsum_of_cubes_odd_number(n) = 1062153.
Đầu vào/Đầu ra:
-
Đầu vào: interger n
-
Đầu ra: long
TổngS
có dạng như trên. Do kết quả quá lớn nên bạn hãy chia lấy dư kết quả cho10^9 + 7.
(Nếu đầu vào không hợp lệ thì trả về-1
).
long long sumOfCubesOddNumber(int n)//n la bien toan cuc
{ if(n<1){
return -1;
}
else if(n==1){
return 1;
}
else{
return long(pow(2*n-1,3))%1000000007+sumOfCubesOddNumber(n-1);
}
}
int main (){
int n;
cin>>n;
cout<<sumOfCubesOddNumber(n);
}
EDIT (@library): @Dai_Viet cậu nhớ post code sử dụng markdown ở các post sau nhé!
Ngoài ra, cậu nên mô tả rõ vấn đề hơn. Với input nào mà cậu nhận được kết quả sai vậy? Và kết quả kỳ vọng của cậu là bao nhiêu?
@library em xin tiếp thu ạ;
Bài này là em lấy trên codelearn. khi chay với n=567 thì CT của em ra 139710032284
trong khi output chuẩn là 710031311