社区
Java SE
帖子详情
计算1+2+3+4+……+n值大于等于500的最小n值
jpsignori
2006-10-12 12:50:54
计算1+2+3+4+……+n值大于等于500的最小n值,用java怎么实现,请大家帮忙!谢谢
...全文
1253
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)
130+节【合集】python爬虫进阶实战项目案例
python爬虫基础+进阶合集案例,130+课时,超
值
! 【送源码】【送课件】 包含内容: python爬虫基础;requests库;正则表达式;http原理。 requests库;beautifulsoup(BS4)库;selenium库;scrapy爬虫框架; 本课程的Python项目案例介绍: 案例1:爬取微博数据存入Excel表格。 案例2:爬取微博评论存入Excel表格。 案例3:爬取芒果TB弹幕内容存入Excel表格。 案例4:爬取豆瓣电影信息TXT文档。 案例5:爬取简书图片保存到本地。 案例6:爬取携程景点评论存入Excel表格。 案例7:爬取全国列车班次信息存入Excel表格。 案例8:自动化点击批量下载。 案例9:网页自动化点击处理业务。 案例10:scrapy爬虫框架爬取豆瓣电影信息。 案例11:scrapy批量自动下载文件。 ……
C#__输入整数n,
计算
1+2+3+……+n的和
【代码】C#__输入整数n,
计算
1+2+3+……+n的和。
python编程
计算
1+(1+2)+(1+2+3)_python
计算
1+2+……+1000的3种方法
Python
计算
数列和很方便,至少有3种方法都是可行的,下面逐一介绍。工具/原料pythonanaconda,spyder方法/步骤1第一种方法就是用for循环。s初始
值
赋
值
为0其中range(1001)是一个列表[0,1,2,3,……,1000],in是用作判断i是否在列表中,如果在,那么就循环执行s=s+i,直到列表全部遍历结束。如图所示:2第二种方法直接使用sum函数。sum(range(1...
java 求ln n_编写一个java程序:
计算
n至少多大时,以下不等式成立。 1+1/2+1/3+……+1/n>10...
编写一个java程序:
计算
n至少多大时,以下不等式成立。 1+1/2+1/3+……+1/n>10以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!编写一个java程序:
计算
n至少多大时,以下不等式成立。 1+1/2+1/3+……+1/n>10public class Test17 {public static ...
1/2+1/3+1/4+1/5+……1/n=?(其中n>0)
1/2+1/3+1/4+1/5+……1/n的求和方法进行简单叙述
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章