1、求阶乘的和
题目: 求
∑
n
=
1
20
n
!
\sum_{n=1}^{20} n!
∑n=120n!(即求1!+2!+…+20!)。
输入样例:
无输入
输出样例:
2561327494111820313
提示:需使用long long类型,否则会溢出。
代码1:
#include<stdio.h>
int main()
{
long long s,sum=0;
int i,j;
for(i=1;i<=20;i++){
s=1;
for(j=i;j>0;j--){
s=s*j;
}
sum=sum+s;
}
printf("%lld",sum);
return 0;
}
代码2:
#include<stdio.h>
int main()
{
double sum=0,fact=1;
int i;
for(i=1;i<=20;i++)
{
fact=fact*i;
sum=sum+fact;
}
printf("%.0f\n",sum);
return 0;
}
2、循环求和
题目: 求
∑
n
=
1
100
n
+
∑
n
=
1
50
n
2
+
∑
n
=
1
10
1
n
\sum_{n=1}^{100} n+\sum_{n=1}^{50}n^2+\sum_{n=1}^{10}\frac{1}{n}
∑n=1100n+∑n=150n2+∑n=110n1。
输入样例:
无输入
输出样例:
47977.928968
代码1:
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k;
double sum1=0,sum2=0,sum3=0;
for(i=1;i<=100;i++){
sum1=sum1+i;
}
for(j=1;j<=50;j++){
sum2=sum2+pow(j,2);
}
for(k=1;k<=10;k++){
sum3=sum3+1.0/k;
}
printf("%f",sum1+sum2+sum3);
return 0;
}
代码2:
#include<stdio.h>
int main()
{
double sum1=0,sum2=0,sum3=0;
int i;
for(i=1;i<=100;i++)
{
sum1=sum1+i;
}
for(i=1;i<=50;i++)
{
sum2=sum2+i*i;
}
for(i=1;i<=10;i++)
{
sum3=sum3+1.0/i;
}
printf("%.6f\n",sum3+sum2+sum1);
return 0;
}
3、用迭代法求a的平方根
题目: 用迭代法求
x
−
a
x-\sqrt{a}
x−a,求平方根的迭代公式为
x
n
+
1
=
1
2
(
x
n
+
a
x
n
)
x_{n+1}=\frac{1}{2}(x_{n}+\frac{a}{x_{n}})
xn+1=21(xn+xna)。要求前后两次求出x的差的绝对值小于
1
0
−
5
10^{-5}
10−5。
输入样例:
2.0
输出样例:
1.414214
代码1:
#include<stdio.h>
#include<math.h>
int main()
{
double x1,x2,a;
scanf("%lf",&a);
x1=sqrt(a);
x2=(x1+a/x1)*1.0/2;
while(fabs(x1-x2)>=pow(10,-5)){
x1=x2;
x2=(x1+a/x1)*1.0/2;
}
printf("%f",x1);
return 0;
}
代码2:
#include<stdio.h>
#include<math.h>
int main()
{
double a;
double x1=1,x2=1;
scanf("%lf",&a);
do{
x1=x2;
x2=1.0/2*(x1+a/x1);
}while(fabs(x1-x2)>=0.00001);
printf("%.6f\n",x2);
return 0;
}
【这一篇到这就完结啦!喜欢的朋友可以点个赞,关注一下哦!你们的关注、点赞和收藏是我更新的动力,O(∩_∩)O哈哈~祝各位前程似锦,明天见呀!】
本文介绍了如何使用C语言实现求阶乘之和、循环求和(包括线性和平方项)以及迭代法求解平方根的示例代码,展示了基本的数值计算方法在编程中的应用。
&spm=1001.2101.3001.5002&articleId=134117798&d=1&t=3&u=ab7750d62c484ae7b5d394f2fa5fe7f0)
1147

被折叠的 条评论
为什么被折叠?



