发新话题

从键盘读取一个正整数,输出1到这个数字的累加和

import java.util.Scanner;

/**
 * 从键盘读取一个数字,输出1到这个数字的累加和。<br>
 * 编写一个字符界面的Java Application 程序,<br>
 * 接受用户从键盘输入的一个正整数,然后统计并输出从1到这个正整数的累加和
 * 
 * @author 老紫竹 JAVA世纪网(java2000.net)
 * 
 */
public class Test {

  public static void main(String[] args) {
    System.out.println("Please input a number:");
    Scanner in = new Scanner(System.in);
    int number = in.nextInt();
    if(number<0){
      System.out.println("The number is invalid");
      return;
    }
    // 方法1,从1开始逐个累加
    long sum = 0;
    for (int i = 1; i <= number; i++) {
      sum += i;
    }
    System.out.println("The sum is:" + sum);
    // 方法2,使用数据梯形公式
    sum = (1 + number) * number / 2;
    System.out.println("The sum is:" + sum);
  }

}
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP
这个数据梯形公式不知道是什么东西 没用过
编辑 回复 快速回复 TOP
LZ 能否帮我解释下 数据梯形公式的 含义 不然以后也就只能这样用 不知道哦所以然
编辑 回复 快速回复 TOP
使用数据梯形公式::高斯等差数列求和公式: (首项+末项)x项数÷2
编辑 回复 快速回复 TOP
学习数据梯形
编辑 回复 快速回复 TOP
难道都没看出是等差数列????汗~~~~~~~~~~~~~~~~
编辑 回复 快速回复 TOP
小学都会的公式啊
编辑 回复 快速回复 TOP
如果我输入一个负数, 然后打印出"The number is invalid" 希望它能在让我再输入,该怎么修改下啊
编辑 回复 快速回复 TOP
return 在与不在似乎一个样啊
编辑 回复 快速回复 TOP
程序运行时输入0,结果会输出0;但和题目的要求就有点区别了
题目要求输入的数字应该是大于或等于1,所以程序的17行应该改为if(number<=0)
编辑 回复 快速回复 TOP
package java世纪习题;

import java.util.Scanner;

public class Sum {
Scanner s = null ;
public Sum(){
s = new Scanner(System.in);
}
public int getKeyin(){
return s.nextInt();
}
public int getSun(){
int sum = 0 ;
int temp = this.getKeyin();
if(temp >0){
for(int i = 1;i<=temp;i++){
sum =sum + i ;
}
return sum ;
}
else System.out.println("请输入大于0的数");
return sum ;
}
public static void main(String[] args) {
System.out.println(new Sum().getSun());

}

}
编辑 回复 快速回复 TOP
发新话题