14.求n!和1!+2!+...+20!和2^1+2^2+……++2^20和2^1+2^3+……++2^19


前言

本系列为循环结构编程题,点滴成长,一起逆袭。


一、题目描述


二、题目分析

首先要清楚阶乘定义,所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n,用公式表示就是:1×2×3×4×…×(n-2)×(n-1)×n=n!

具体的操作:利用循环解决问题,设循环变量为 i,初值为 1,i 从 1 变化到 n;依次让 i 与 sum 相乘,并将乘积赋给 sum。
① 定义变量 sum,并赋初值 1。
② i 自增 1。
③ 直到 i 超过 n。


三、解题

程序运行代码

#include<stdio.h>
int main()
{
    int i,n;
    double fac=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        fac=fac*i;
    printf("%d!=%lf",n,fac);
    printf("\n");
    return 0;
}

四、举一反三

一、题目描述:求1!+2!+…+20!

求1!+2!+…+20!


二、题目分析

在这里插入图片描述

三、解题

程序运行代码1

#include<stdio.h>
int main()
{
    int i,n;
    double fac=1,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
    	fac=fac*i;//求各项阶乘
    	sum+=fac;//求各项阶乘之和
	}
    printf("%lf",sum);
    printf("\n");
    return 0;
}
#include<stdio.h>
int main()
{
    int i;
    double fac=1,sum=0;
    for(i=1;i<=20;i++){
    	fac=fac*i;
    	sum+=fac;
	}
    printf("%lf",sum);
    printf("\n");
    return 0;
}

程序运行代码2

#include<stdio.h>
int main()
{
    int i,j;
    double fac=1,sum=0;
    for(i=1;i<=20;i++){
    	fac=1,j=1;
    	do{
    		fac*=j;
    		j++;
		}while(j<=i);//求各项阶乘
    	sum+=fac;//求各项阶乘之和
	}
    printf("%lf",sum);
    printf("\n");
    return 0;
}

一、题目描述:求求21+22+……++220

求21+22+……++220


二、解题

程序运行代码

#include<stdio.h>
int main()
{
    int i,n;
    double fac=1,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
    	fac=fac*2;//求各项阶乘fac*2
    	sum+=fac;//求各项阶乘之和
	}
    printf("%lf",sum);
    printf("\n");
    return 0;
}

一、题目描述:求求21+23+……++219

21+23+……++219


二、解题

程序运行代码

#include<stdio.h>
int main()
{
    int i,n;
    double fac=1,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
    	fac=fac*2;//求各项阶乘fac*2
    	if(i%2==1)sum+=fac;//if(i%2==1)求各项阶乘之和
	}
    printf("%lf",sum);
    printf("\n");
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值