Python123:求阶乘的和、循环求和、用迭代法求a的平方根(C语言)

本文介绍了如何使用C语言实现求阶乘之和、循环求和(包括线性和平方项)以及迭代法求解平方根的示例代码,展示了基本的数值计算方法在编程中的应用。

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} xa ,求平方根的迭代公式为 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} 105
 
输入样例:

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哈哈~祝各位前程似锦,明天见呀!】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西柚喝茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值