文章目录
- 前言
- 一、题目描述
- 二、题目分析
- 三、解题
- 程序运行代码
- 四、举一反三
- 一、题目描述:求1!+2!+...+20!
- 二、题目分析
- 三、解题
- 程序运行代码1
- 程序运行代码2
- 一、题目描述:求求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;
}