编程题:求序列立方和
编写程序,输入正整数 $$n$$,计算立方和 $$s = 1^3 + 2^3 + 3^3 + \cdots + n^3$$。
#### 输入格式
> $$n$$
#### 输出格式
> $$s$$
注:$$n$$ 和 $$s$$ 都在 int 的表示范围内。
#### 输入样例
in
45
#### 输出样例
out
1071225
提示:合理书写表达式,在规定的范围内完成更多的计算。
答案:若无答案欢迎评论
本题直接利用公式求解,无须使用循环语句。
提示:
<table>
<tr>
<td align="center">$$1^3 = 1$$</td>
<td align="center">$$1^2 = 1$$</td>
</tr>
<tr>
<td align="center">$$1^3 + 2^3 = 9$$</td>
<td align="center">$$(1 + 2) ^ 2 = 9$$</td>
</tr>
<tr>
<td align="center">$$1^3 + 2^3 + 3^3 = 36$$</td>
<td align="center">$$(1 + 2 + 3) ^ 2 = 36$$</td>
</tr>
<tr>
<td align="center">$$1^3 + 2^3 + 3^3 + 4^3 = 100$$</td>
<td align="center">$$(1 + 2 + 3 + 4) ^ 2 = 100$$</td>
</tr>
<tr>
<td align="center">$$\cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots$$</td>
<td align="center">$$\cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots$$</td>
</tr>
</table>
c
s = n * n * (n + 1) *(n + 1) / 4;
这样写表达式,即使 n 的值不算太大,由于前面的乘积太大,超出整数表示范围,导致计算出错。
c
s = n * (n + 1) / 2;
s *= s;
及时做除法,缩小中间结果,可以在规定的范围内完成更多的计算。
#### 输入格式
> $$n$$
#### 输出格式
> $$s$$
注:$$n$$ 和 $$s$$ 都在 int 的表示范围内。
#### 输入样例
in
45
#### 输出样例
out
1071225
提示:合理书写表达式,在规定的范围内完成更多的计算。
答案:若无答案欢迎评论
本题直接利用公式求解,无须使用循环语句。
提示:
<table>
<tr>
<td align="center">$$1^3 = 1$$</td>
<td align="center">$$1^2 = 1$$</td>
</tr>
<tr>
<td align="center">$$1^3 + 2^3 = 9$$</td>
<td align="center">$$(1 + 2) ^ 2 = 9$$</td>
</tr>
<tr>
<td align="center">$$1^3 + 2^3 + 3^3 = 36$$</td>
<td align="center">$$(1 + 2 + 3) ^ 2 = 36$$</td>
</tr>
<tr>
<td align="center">$$1^3 + 2^3 + 3^3 + 4^3 = 100$$</td>
<td align="center">$$(1 + 2 + 3 + 4) ^ 2 = 100$$</td>
</tr>
<tr>
<td align="center">$$\cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots$$</td>
<td align="center">$$\cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots$$</td>
</tr>
</table>
c
s = n * n * (n + 1) *(n + 1) / 4;
这样写表达式,即使 n 的值不算太大,由于前面的乘积太大,超出整数表示范围,导致计算出错。
c
s = n * (n + 1) / 2;
s *= s;
及时做除法,缩小中间结果,可以在规定的范围内完成更多的计算。