【C语言经典100题】求1~20阶乘的和

本文介绍了一种计算1到20各数字阶乘之和的方法,通过定义阶乘函数并结合循环结构实现,强调了数据类型选择的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


题目

🐷求1+2!+3!+…+20!的和


一、分析

🐷利用函数求阶乘,再利用循环求和。

二、代码

🐷代码如下(示例):

/*求1+2!+3!+...+20!的和*/
#include<stdio.h>
unsigned long long JieCheng(int n){
    unsigned long long num = 1;
    for (int j = 1; j <= n; j++){
        num *= j;
    }
    return num;
}
int main(void){
    unsigned long long sum = 0;
    for (int i = 1; i <= 20;i++){
        sum += JieCheng(i);
    }
    printf("1+2!+3!+...+20!=%llu", sum);
    return 0;
}

总结

🐸求解的过程中注意求出的每个答案有没有超出数据类型的范围🐶比如本题的阶乘与阶乘的和的大小都超出了int、long、unsigned long、long long的范围🐱必须使用unsigned long long来计算🐸


2022.1.11

### C语言经典编程合集 以下是经典的C语言编程目集合,涵盖了基础操作、数组处理、函数应用等多个方面: #### 目列表 1. **输入一组数据并找出最大值及其位置** ```c #include<stdio.h> int main() { int n; scanf("%d", &n); int a[n]; for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } int max = a[0], index = 0; for (int i = 1; i < n; i++) { if (a[i] > max) { max = a[i]; index = i; } } printf("Max value is %d at position %d\n", max, index); return 0; } ``` 2. **计算阶乘** 输入一个正整数 `n`,前 `n` 项的阶乘 \( S = 1! + 2! + \dots + n! \)[^2] 3. **将数组中的元素逆序存放** 编写程序实现将给定数组中的元素按相反顺序排列[^1]. 4. **判断素数** 判断一个正整数是否为素数。 5. **打印九九乘法表** 6. **数组的最大公约数(GCD)** 最小公倍数(LCM) 7. **字符串反转** 实现一个函数用于翻转字符串的内容。 8. **水仙花数** 找出所有的三位数中满足条件的水仙花数(即该数等于其各位数字立方)。 9. **斐波那契序列** 输出指定长度的斐波那契数列。 10. **冒泡排序算法** 对一组无序的数据进行升序或降序排列。 --- 更多类似的目可以参考以下资源: - 大学教材《C Primer Plus》附录章节提供了丰富的练习。 - 在线平台 LeetCode 或 Codeforces 的入门级 C/C++ 库也包含大量适合初学者的目[^4]. - 自己整理的大一常见的 C 语言编程覆盖了基本语法到复杂逻辑的应用场景[^3]. #### 注意事项 对于每一道目,在编写代码时应注重可读性效率。同时建议尝试多种解法来加深理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值