在高中的数学课程有一项内容曾经让笔者头疼不已,那就是数列
那么我们要如何使用C语言代码来实现计算呢?
对于这个内容,首先我们需要对数列的本质理解,就是将数列的每一项进行求和或求积。
针对“每一项”这个关键词我们可以联想到“循环”,也就是使用while循环或者for循环构建逻辑框架。对于循环语句还不了解的同学们可以在学习完循环语句后再继续阅读本推文。
对于“求和”与“求积”操作我们分别可以用到“+=”和“*=”两个运算符。
于是我们可以构建(变量i均在循环语句之前定义)
for(i=0;i<=n;i++)
{
a+= i; //此处写入通项公式
}
for (i=0;i<=n;i++)
{
a *= i;
}
对此有很多变体
例题1
求简单交错序列前N项和
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。
题解
#include <stdio.h>
#include <math.h>
int main() {
int n=0;
double sum = 0.0;
scanf("%d", &n);
for (int i = 0; i <= n-1; i++)
{
sum += (1.0 / (i * 3.0 + 1.0))*pow(-1,i);
}
printf("sum = %.3f", sum);
return 0;
}
其中对于交错数列的部分使用了指数进行运算
例题2
计算n的阶乘
编写程序计算n的阶乘, n 由用户输入, 0 < n <=20。例如:输入5,则输出 fact = 120
输入格式:
请在这里写输入格式。例如:输入: 5
输出格式:
请在这里描述输出格式。例如:输出 :fact = 120 。
输入样例:
在这里给出一组输入。例如:
5
输出样例:
在这里给出相应的输出。例如:
fact = 120
题解
#include <stdio.h>
int main()
{
int n=0;
scanf("%d", &n);
long fact = 1;
if(n>0 && n<=20)
{
for (int i = 1; i <= n; i++)
{
fact *= i;
}
printf("fact = %ld", fact);
return 0;
}
}