C语言中,可以使用多种方法来计算从1到n的自然数之和。如循环、公式和递归等,选择哪种方法可以根据具体需求和编程习惯来决定。

1、使用for循环

#include <stdio.h>

int main() {
    int n, sum = 0;
    printf("请输入一个正整数: ");
    scanf("%d", &n);

    for (int i = 1; i <= n; i++) {
        sum += i;
    }

    printf("从1到%d的自然数之和是: %d\n", n, sum);
    return 0;
}

2、使用while循环

#include <stdio.h>

int main() {
    int n, sum = 0, i = 1;
    printf("请输入一个正整数: ");
    scanf("%d", &n);

    while (i <= n) {
        sum += i;
        i++;
    }

    printf("从1到%d的自然数之和是: %d\n", n, sum);
    return 0;
}

3、使用do-while循环

#include <stdio.h>

int main() {
    int n, sum = 0, i = 1;
    printf("请输入一个正整数: ");
    scanf("%d", &n);

    do {
        sum += i;
        i++;
    } while (i <= n);

    printf("从1到%d的自然数之和是: %d\n", n, sum);
    return 0;
}

4、使用公式

#include <stdio.h>

int main() {
    int n;
    printf("请输入一个正整数: ");
    scanf("%d", &n);

    int sum = n * (n + 1) / 2;

    printf("从1到%d的自然数之和是: %d\n", n, sum);
    return 0;
}

5、使用递归函数

#include <stdio.h>

int sum_recursive(int n) {
    if (n == 1)
        return 1;
    else
        return n + sum_recursive(n - 1);
}

int main() {
    int n;
    printf("请输入一个正整数: ");
    scanf("%d", &n);

    int sum = sum_recursive(n);

    printf("从1到%d的自然数之和是: %d\n", n, sum);
    return 0;
}

6、使用数组

#include <stdio.h>

int main() {
    int n, sum = 0;
    printf("请输入一个整数: ");
    scanf("%d", &n);

    int arr[n];
    for (int i = 0; i < n; i++) {
        arr[i] = i + 1;
    }

    for (int i = 0; i < n; i++) {
        sum += arr[i];
    }

    printf("从1到%d的自然数之和为: %d\n", n, sum);
    return 0;
}

推荐文档

相关文档

大家感兴趣的内容

随机列表