Java 示例 - 数字求和

  • 问题描述

    如何打印数字的总和?
  • 解决方案

    以下示例演示如何使用堆栈的概念添加前 n 个自然数。
    
    import java.io.IOException;
    public class AdditionStack {
       static int num;
       static int ans;
       static Stack theStack;
       public static void main(String[] args)
       
       throws IOException {
          num = 50;
          stackAddition();
          System.out.println("Sum = " + ans);
       }
       public static void stackAddition() {
          theStack = new Stack(10000); 
          ans = 0; 
          while (num > 0) {
             theStack.push(num); 
             --num; 
          }
          while (!theStack.isEmpty()) {
             int newN = theStack.pop(); 
             ans += newN; 
          }
       }
    }
    class Stack {
       private int maxSize; 
       private int[] data;
       private int top; 
       public Stack(int s) {
          maxSize = s;
          data = new int[maxSize];
          top = -1;
       }
       public void push(int p) {
          data[++top] = p;
       }
       public int pop() {
          return data[top--];
       }
       public int peek() {
          return data[top];
       }
       public boolean isEmpty() {
          return (top == -1);
       }
    }
    
  • 结果

    上面的代码示例将产生以下结果。
    
    Sum = 1275
    
    下面是前n个自然数的另一个例子
    
    public class Demo {
       public static void main(String[] args) {
          int sum = 0;
          int n = 50;
          for (int i = 1; i <= n; i++) {
             sum = sum + i;
          } 
          System.out.println("The Sum Of " + n + "is" + sum);
       }
    }
    
    上面的代码示例将产生以下结果。
    
    The Sum Of 50 is 1275