JAVA 1+2+3+...+n=8000
发布网友
发布时间:2024-03-04 21:35
我来回答
共6个回答
热心网友
时间:2024-03-07 22:33
public class Ex05{
public static void main(String args[]){
int sum,n;
n=1;
sum=0;
do{
sum+=n;
n++;
} while(sum<=8000);
System.out.println(\"1+2+3+.....+n=8000; n=\"+n);
}
}
最好用调用方法做这题,否则这算不上一个优秀的程序
热心网友
时间:2024-03-07 22:31
可以利用Math类的方法:
(int)Math.sqrt(8000*2);
//小提醒:Math为java.lang包的一部分不必自己加载,这个包
//由编译器自动加载;Math类中方法都为静态方法,可直接使用
如果不考虑算法的话,可以用以下方法:
int sum=0,i=1;
while(true){
sum+=i++;
if(sum==8000)break;
}
N=i-1;//
热心网友
时间:2024-03-07 22:35
int n=1;
int x=0;
while(x!=8000){
x+=n;
n++;
}
return n;
大概是这个样子吧 然后具体是放到main主方法里 还是封装到别的类里自己看着弄吧
热心网友
时间:2024-03-07 22:32
public class j0001
{
public static void main(String[] args)
{
int x=1,sum=0,temp=0;
while(sum<=8000)
{
temp=sum+x;
System.out.println(temp+" = "+sum+"+"+x);
sum = temp;
x++;
}
}
}
这样或许直观些吧?!
热心网友
时间:2024-03-07 22:32
n*(n+1)/2=8800
算一下就知道了
热心网友
时间:2024-03-07 22:31
大哥门,专业些。扯一样的男子的程序肯定是死循环;sainthow1的N和最后一次嫁到sum里的数差1。
改造一下:
int n=1;
int x=0;
while(x>=8000){
x+=n;
n++;
}
printf("%d",n);