📌  相关文章
📜  国际空间研究组织 | ISRO CS 2007 |问题 66(1)

📅  最后修改于: 2023-12-03 15:37:13.824000             🧑  作者: Mango

国际空间研究组织 (ISRO) CS 2007 - 问题 66

这是一个出现在国际空间研究组织 CS 2007 程序设计考试中的问题。该问题考察了程序员对递归和条件控制语句的理解能力。

问题描述

给定一个正整数 $n$,编写一个递归函数来计算 $1+2+\cdots+n$ 的和。同时,该函数应该使用条件控制语句来检查输入是否为正整数。

输入格式

输入参数如下:

  • $n$,一个正整数。
输出格式

返回一个整数,表示 $1+2+\cdots+n$ 的和。

如果输入不是正整数,则返回 -1

代码示例

示例 1:

def sum_n(n):
    if n <= 0:
        return -1
    elif n == 1:
        return 1
    else:
        return n + sum_n(n-1)

上述代码定义了一个名为 sum_n 的函数,该函数使用递归计算 $1+2+\cdots+n$ 的和,并使用条件控制语句来检查输入是否为正整数。

首先,该函数检查输入参数 $n$ 是否小于等于 $0$,如果是,则返回 -1

接着,该函数检查输入参数 $n$ 是否等于 $1$,如果是,则返回 $1$。这是递归函数的基本情况。

否则,该函数计算 $n + sum_n(n-1)$,并返回结果。这是递归函数的递推情况。递归函数的结束条件是 $n=1$。