s=1*2+2*3+。。。+m*(m+1) 求当s<=200000时的最大m值
答案:4 悬赏:0 手机版
解决时间 2021-05-09 19:25
- 提问者网友:雾里闻花香
- 2021-05-09 06:25
C语言编程
最佳答案
- 五星知识达人网友:渡鹤影
- 2021-05-09 07:16
循环也可以不用,先用求和公式化简:
s=1*2+2*3+。。。+m*(m+1) =m*(m+1)*(m+2)/3
因此,s<=200000可化为m*(m+1)*(m+2)/3<=200000
于是有不等式:m^3 < m*(m+1)*(m+2) <= 600000
只要解m^3 < 600000的最大M值即可
#include <stdio.h>
#include <math.h>
int main()
{
int m;
m = (int)floor(pow(200000.0 * 3, 1.0 / 3));
printf("max m= %d", m);
return 0;
}
全部回答
- 1楼网友:不如潦草
- 2021-05-09 09:27
简单,一个一个加,当超了就跳出,并把m-1就行了
- 2楼网友:等灯
- 2021-05-09 08:21
#include<stdio.h>
void main()
{
int i=1,m,s=0;
while(s<=200000)
{
s=s+i*(i+1);
i++;
}
m=i-1;
printf("m的值为%d",m);
}
- 3楼网友:平生事
- 2021-05-09 07:30
#include <stdio.h>
int main()
{
int m = 1;
int s = 0;
while ( s <= 200000 ) {
s += m*( m+1 );
++m;
}
if ( s > 200000 ) {
--m;
}
printf( "MAX M: %d\n", m );
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯