搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 数列求和
标题:
数列求和
只看楼主
小人儿
等 级:
新手上路
帖 子:6
专家分:0
注 册:2019-10-31
结帖率:
33.33%
楼主
已结贴
√
问题点数:10 回复次数:2
数列求和
III. 数列求和
从键盘输入一个整数n,编程求1*2+2*3+…+n*(n+1)的值,要求程序中不得出现while,for,if关键字。
提示:
1. 使用递归函数实现;
2. 使用?:运算符。
简单一些 谢谢大佬
搜索更多相关主题的帖子:
求和
if
数列
关键字
提示
2019-11-28 20:19
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
2
楼
得分:10
1*2 + 2*3 + 3*4 + …… + n*(n+1)
= (1*1 + 2*2 + 3*3 + …… + n*n) + (1+2+3+……+n)
= 1/6n(n+1)(2n+1) + 1/2n(n+1)
= n(n+1)(n+2)/3
为了防止 n(n+1)(n+2) 中间结果溢出,且又不允许用if,那变形为
n*(n+1)*(n+2)/3 = n/3*(n+1)*(n+2) + n%3*(n+1)*(n+2)/3
2019-11-28 22:53
雪影辰风
来 自:衡阳市
等 级:
贵宾
威 望:
22
帖 子:177
专家分:387
注 册:2019-6-17
第
3
楼
得分:0
#include<cstdio>
#include<windows.h>
using namespace std;
long long ans=0;
int doit(int now) {
return now>1?now*(now+1)+doit(now-1):1*2;
}
int main() {
int n;
scanf("%d",&n);
printf("%d",doit(n));
system("pause");
return 0;
}
2019-11-29 22:22
3
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-498134-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.467708 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved