Manchester


私信TA

用户名:wenyajie

访问量:331903

签 名:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

等  级
排  名 1
经  验 65524
参赛次数 1
文章发表 188
年  龄 0
在职情况 学生
学  校 Xiamen University
专  业 计算机科学

  自我简介:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

解题思路:
1.输入一个数n,求满足不等式:1^3+2^3+...+i^3<=n   的最大i;

2.设置求和循环,从i=1开始,每次 i 递增1,且把pow(i,3)累加到s,直至s>=n,结束;

3.直至s>=n,结束,也就是s<n则执行;

4.结束时,s可能大于n,s也可能等于n;

5.当s大于n时,对应的 i 减去1才是满足不等式1^3+2^3+...+i^3<=n 的最大  i;

6.当s等于n时,对应的 i 就是 满足不等式1^3+2^3+...+i^3<=n 的最大  i;


参考代码:

#include <stdio.h>
#include <math.h>
int main()
{
    int i = 0, s = 0, n;
    scanf( "%d", &n );
    while ( s < n )
        s += pow( ++i, 3 );
    if ( s != n )
        printf( "%d", i - 1 );
    else
        printf( "%d", i );
    return(0);
}

别忘点赞哦-.-

 

0.0分

23 人评分

  评论区

#include<stdio.h>
int main(void)
{
	int n;
	scanf("%d",&n);
	int s=0,i=1,a=0;
	while(s<=n)
	{
		s+=i*i*i;
		i++;
		a++;
	}
	printf("%d",a-1);
	return 0;
}
2022-08-24 13:42:37
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
  int i,s,n;
  scanf("%d",&n);
  for(i=1,s=0;s<n;i++)
  {
  	s+=i*i*i;
  }
  if(s==n)
  {
  	printf("%d",i-1);
  }
  else
  printf("%d",i-2);
}
2021-08-21 19:23:49
它题目好像没说要最大的啊!
我每次都输出1,逻辑上也可以啊!
2019-12-23 15:56:58
为什么我这个代码这个oj运行超时??
#include <stdio.h>

int main()
{	int n,m,sum=0;
	scanf("%d",&n);

while(sum<=n){
	m++;
	sum=m*m*m+sum;
}
printf("%d",m-1);
	return 0;
}
2019-06-13 23:00:55
  • «
  • 1
  • »