我可以不使用C中的循环打印1到10的和吗?

我可以不使用C中的循环打印1到10的和吗?,c,sum,C,Sum,如何在不使用任何循环、大小写、开关、转到的情况下打印1到10的总和。要查找算术序列中特定数量项的总和,请使用公式Sn=na1+an/2,其中Sn是n项第n部分和的总和, a1是第一项,an是第n项。所以你可以写: int n = 10; int somme = n * (n + 1) / 2; printf("%d", somme); 参考:使用重复:计算子结果,直到达到0,然后返回最终结果 这是一个使用递归的解决方案。将最高限制、最低限制和0传递给SumNum,它将打印数字1到high的总和

如何在不使用任何循环、大小写、开关、转到的情况下打印1到10的总和。

要查找算术序列中特定数量项的总和,请使用公式Sn=na1+an/2,其中Sn是n项第n部分和的总和, a1是第一项,an是第n项。所以你可以写:

int n = 10;
int somme = n * (n + 1) / 2;
printf("%d", somme);

参考:

使用重复:计算子结果,直到达到0,然后返回最终结果

这是一个使用递归的解决方案。将最高限制、最低限制和0传递给SumNum,它将打印数字1到high的总和。它所做的是将数字high添加到sum,您将其初始化为0,然后再次调用函数high-1表示high:

我不确定这是否是最佳C,因为我主要使用C++。我更喜欢C++版本,在这里你只需从主文件中传递高和低,而不通过0的起始和:
void SumNum(int high, int low, int sum = 0)
{
    if (high == low) {
        printf("%i\n", sum);
        return;
    }
    else SumNum(high - 1, low, sum + high);
}

int main()
{
    SumNum(10,0);
}

printf%i\n,1+2+3+4+5+6+7+8+9+10这个问题似乎与数学无关:1+10*10/2。算术序列的总和。题外话:要求家庭作业帮助的问题必须包括到目前为止你为解决问题所做的工作的摘要,以及你解决问题的难度的描述。只需打印数字55,你肯定能做到吗?你能解释一下为什么会这样吗?@hosch250这是计算序列和的一般公式,其中An=An-1+1完整演示:或:请在向上投票前检查代码。在发表评论时,它说,并有3张赞成票这就是它所说的。来吧,伙计们,三行太难读了?如果它编译了又有什么关系呢?用C写nn+1时,不会隐式地将n乘以n+1。如果你以一种语言不可知的方式给出一个伪代码答案,那就好了,因为它可以从数学中理解。但问题是关于C的,如果你的答案是C的外观足以包含printf,那么我认为法律语法在答案中确实很重要。。。
void SumNum(int high, int low, int sum = 0)
{
    if (high == low) {
        printf("%i\n", sum);
        return;
    }
    else SumNum(high - 1, low, sum + high);
}

int main()
{
    SumNum(10,0);
}