/* ============================================================================ * File: SumN.java * ---------------------------------------------------------------------------- * * This file is part of the Microsoft Supplemental UI Library for Visual J# .NET * Code Samples. * * Copyright (C) 2003 Microsoft Corporation. All rights reserved. * * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, * WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. * ============================================================================ */ package RecursionDemo; /** * This class implements RecursiveFunction interface to demonstrate calculation of * Sum(n) as recursive funtion. * Refer Factorial.java also. */ public class SumN implements RecursiveFunction { private RecursionStack stack; public String getName() { return "Sum(n) Function"; } public String getDescription() { return "This function generates sum of 1 to n"; } public String getCode() { return "public int sumN(int n) {\n" + " if (n <= 1)\n" + " return 1;\n" + " else\n" + " return (n + sumN(n - 1));\n" + "}"; } public int doRecursion(int n) { stack.push(n); int retVal; if (n <= 1) retVal = 1; else { retVal = n + doRecursion(n - 1); } stack.pop(retVal); return retVal; } public void setRecursionStack(RecursionStack s) { stack = s; } }