C语言笔记第十课

一、作业内容

1. 求阶乘的和 ,1!+2!+3!+4!+…+n!, 其中 n 由键盘读取.
int main()
{
int n;
scanf ("%d",&n);
int sum=0;//和
int tmp=1;//当前项的值
for(int i=1;i<n;i++)
{
tmp*=i;
sum+=tmp;
}
printf("%d\n",sum);
return 0;
}
2. 一个球从 100m 高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第 10次落地时共经过多少米,第 10 次反弹多高。
int main()
{
//由于第一次下落和后面的有区别,故把第一次放在循环外
double sum=100;//总长度
double high=100/2;//反弹高度
for(int i=1;i<10;i++)
{
sum+=high*2;
high/=2;
}
printf("%.2f %.2f\n",sum,high);
return 0;
3. 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如, 6 的因子为 1,2,3 6=1+2+3,因此 6 是"完数"。编程序找出 1000 之内的所有完数 , 并输出。
int main()
{
for(int i=0;i<1000;i++)
{
int sum=0;//所有因子之和
for(int j=1;j<i;j++)//求当前因子和
{
if(i%j==0)//j是i的因子
sum+=j;
}
if(sum==i)
printf("%d是个完数\n",i);
return 0;
}

 二、上课内容

求斐波那契 (Fibonacci) 数列的第 n 个数。这个数列有如下特点:第 1 2 两个数为 1 1 。从第 3 个数开始,该数是其前面两个数之和。即 1,1,2,3,5,8,13,21,......
int main()
{
int n;
scanf("%d",&n);
int f1=1;//第一项
int f2=1;//第二项
int f3=1;//当前项
for(int i=3;i<n;i++)
{
f3=f1+f2;
f1=f2;
f2=f3;
}
printf("%d\n",f3);
return 0;

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值