社区
Java SE
帖子详情
计算1+2+3+4+……+n值大于等于500的最小n值
jpsignori
2006-10-12 12:50:54
计算1+2+3+4+……+n值大于等于500的最小n值,用java怎么实现,请大家帮忙!谢谢
...全文
1352
21
打赏
收藏
计算1+2+3+4+……+n值大于等于500的最小n值
计算1+2+3+4+……+n值大于等于500的最小n值,用java怎么实现,请大家帮忙!谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
seething
2006-10-13
打赏
举报
回复
学习思想中...
sunday_hl
2006-10-13
打赏
举报
回复
Mark
学习中。
mienfly
2006-10-13
打赏
举报
回复
好东东,好些方法呀!学习!
tyc_2000_ren
2006-10-13
打赏
举报
回复
很好的思路 顶一下
ykzhujiang
2006-10-12
打赏
举报
回复
解不等式(1+n)*n/2>=500
xtaotao
2006-10-12
打赏
举报
回复
哈哈,有用吗
class test
{
static long sum(int n)
{
return (1+n)*n/2;
}
public static void main(String[] args)
{
int i=1;
long sum;
while(true)
{
sum = sum(i);
if(sum>=500) break;
i++;
}
System.out.println("Min N = "+i);
}
}
starhand
2006-10-12
打赏
举报
回复
顶你个肺
kadeya
2006-10-12
打赏
举报
回复
楼上正解,学习思想中...
iambic
2006-10-12
打赏
举报
回复
没有问题吧,我试过的,全部测试如下:
public class Sum500 {
public static int minN(int sum) {
return (int)Math.ceil(Math.sqrt(sum*2+0.25)-0.5);
}
public static void main(String args[]) {
System.out.println(minN(0));
System.out.println(minN(1));
System.out.println(minN(55));
System.out.println(minN(56));
System.out.println(minN(500));
System.out.println(minN(5049));
System.out.println(minN(5050));
System.out.println(minN(5051));
}
}
输出结果:
0
1
10
11
32
100
100
101
yahunetbar
2006-10-12
打赏
举报
回复
iambic
答案是有问题的 如果正好等于 答案是错误的
maquan
2006-10-12
打赏
举报
回复
很支持 ykzhujiang 和 iambic 的观点。
其实这种题目,如果出在数学课上,可能大家都没什么异议。而出现在计算机课上,就显得很模糊,因为题目本身没有说清楚哪些事情由计算机做、哪些事情应该让人脑先来完成。
在实际的应用环境里,要实现一个算法,首先要经过人脑的充分分析,最后把真正需要电脑来做的工作写成程序,而不能上来就让电脑傻算一通。除非是计算机课上练习循环语句的使用。
iambic
2006-10-12
打赏
举报
回复
哦,错了。循环计算的复杂度是O(n^0.5)。
iambic
2006-10-12
打赏
举报
回复
呵呵,可能有人觉得我用浮点数运算比较慢,其实我的算法时间复杂度是O(1),而循环计算的复杂度是O(logn)。另外我的算法其实只有一行:
(int)Math.ceil(Math.sqrt(sum*2+0.25)-0.5);
healer_kx
2006-10-12
打赏
举报
回复
晕,这种题目做出100道也不稀奇,哪里算得上牛啊。。。
vinegar111
2006-10-12
打赏
举报
回复
最苯的法子,自己加
int sum=0;
for(int i=1;sum<=500;i++){
sum+=i;
}
return i;
li_kewei
2006-10-12
打赏
举报
回复
public class TestCountN {
int n=0;
int i=0;
public int testN(){
for(i=0;;i++){
n+=i;
if(n>=500)
break;
}
return i;
}
public static void main(String[] args) {
TestCountN tcn=new TestCountN();
System.out.println(tcn.testN());
}
}
yyjzsl
2006-10-12
打赏
举报
回复
牛人,多啊,^_^!
buyaowen
2006-10-12
打赏
举报
回复
xtaotao的就可以吧?
感觉及不等式更费尽
haisenmai
2006-10-12
打赏
举报
回复
support upstairs
iambic
2006-10-12
打赏
举报
回复
这种题还要Java实现……
1+2+...+n >= 5000
n*(n+1) >= 1000
(n+0.5)^2 - 0.5^2 >= 1000
(n+0.5)^2 >= 1000.25
两边取平方根
n+0.5 >= 31.63
n >= 31.13
n >= 32
所以最小的是32
Java代码:
public class Sum500 {
public static int minN(int sum) {
return (int)Math.ceil(Math.sqrt(sum*2+0.25)-0.5);
}
public static void main(String args[]) {
System.out.println(minN(500));
}
}
加载更多回复(1)
求满足下列不等式的
最小
m。 1 + 2 + 3 + 4 + ...... + m
大于
等于
n
本文介绍了一个简单的算法,用于求解使等式1+2+3+...+m≥n成立的
最小
m
值
。通过迭代累加从1开始的自然数,直到总和
大于
等于
给定的n
值
,从而找到满足条件的
最小
m。
【C++】构造可以使n个城市连接的
最小
生成树
本文通过C++编程,使用Prim和Kruskal算法在给定的邻接矩阵中构建
最小
生成树,同时展示了如何检查图的连通性,并输出
最小
生成树的代价。样例中包含6个城市和10条边,展示了算法的具体应用。
C语言编程>第八周 ⑤ 请编写函数fun,它的功能是:求Fibonacci数列中
大于
a(a>3)的
最小
的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:
该博客介绍了C语言编程中关于Fibonacci数列的函数实现,具体要求是找到
大于
给定
值
a的
最小
Fibonacci数。示例代码展示了一个
计算
Fibonacci数列的函数,并在main函数中调用,同时提供了其他编程练习,如字符串处理、数学
计算
、矩阵转置等,以提升C语言编程能力。
已知:Yn =1+1/2+1/3+…+1/n。对于任意一个正整数m,当n足够大时,Yn
大于
m。任意给出正整数m(1<=m<=10),要求
计算
出
最小
的n,使得Yn
大于
m
本文介绍了一个程序,用于
计算
给定正整数m的阶乘,并演示了随着m的增加,n
值
如何递增。通过实例展示如何利用do-while循环实现阶乘的
计算
并输出结果n-1。
基于MATLAB提取脑电成分的50%峰潜伏期——以P1和N1成分为例
本文介绍了使用组平均波形确定P1和N1成分在神经信号中的时间窗口,通过转折点检测峰
值
,然后在峰
值
两侧找到最接近50%峰潜伏期的采样点,最后将这些点转化为时刻点,从而精确
计算
P1和N1的时间区间。
Java SE
62,622
社区成员
307,252
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章