Stack Triangle 2
$ dart 05_recursion/stack_triangle2.dart
import 'dart:io';
class StackX {
int maxSize;
List<int> stackArray;
int top;
StackX(int s) {
maxSize = s;
stackArray = new List<int>(maxSize);
top = -1;
}
void push(int p) {
stackArray[++top] = p;
}
int pop() {
return stackArray[top--];
}
int peek() {
return stackArray[top];
}
bool isEmpty() {
return top == -1;
}
}
class StackTriangleApp {
static int number;
static int answer;
static StackX stackX;
static void stackTriangle() {
stackX = new StackX(10000);
answer = 0;
while (number > 0) {
stackX.push(number);
-- number;
}
while (!stackX.isEmpty()) {
int newN = stackX.pop();
answer += newN;
}
}
}
void main() {
stdout.write('Enter a number: ');
StackTriangleApp.number = int.parse(stdin.readLineSync());
StackTriangleApp.stackTriangle();
stdout.writeln('Triangle = ${StackTriangleApp.answer}');
}