免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1680 | 回复: 10
打印 上一主题 下一主题

大家一起来做题哈哈!~~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-28 20:02 |只看该作者 |倒序浏览
1,输入两个数n与m,计算n与m之间的所有整数的和,包括n和m,有n>=m,n<=m 两种情况
#include<stdio.h>
main()
{
        int i,n,m,s1=0,s2=0;
        scanf("%d%d",&n,&m);
        if(n<m)
        {
                for(i=n;i<=m;i++)
                {
                        s1=s1+i;
                }
        }
        else
                for(i=m;i<=n;i++)
                {
                        s1=s1+i;
                }
                printf("%d",s1);
}


2,  利用循环计算(5+5*5)*(4+4*4)*(3+3*3)*(2+2*2)*(1+1*1)*(1/2+1/3+1/4+1/5)
#include<stdio.h>
main()
{
        float i,sam1,sam2,s1=1,s2=0;
        for(i=5;i>0;i--)
        {
                sam1=1/i;
                s2=s2+sam1;
                sam2=i+i*i;
                s1=s1*sam2;
        }
        printf("%f\n",s1*s2);
}


3,  一球从100米的高度落下,每次落地后反跳高度的一半再落下,求它人第10次落地时,是从什么高度落下的,第10次落地时,球经过了多少米?
#include<stdio.h>
main()
{
        float l=100,i,n=0;
        for(i=1;i<10;i++)
        {       n=l+n;
                l=l/2;
        }
        printf("%f\t%f",n,l);
}

我也要做大家一起做啊!~上边是我做出的答案,谢谢大家对我的提醒和勉励了!有一天我也会成为你们大牛行列中一员的!~~

[ 本帖最后由 piaoyizu 于 2007-1-28 23:21 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-01-28 20:24 |只看该作者
1,输入两个数n与m,计算n与m之间的所有整数的和,包括n和m,有n>=m,n<=m 两种情况

等差数列求和

论坛徽章:
0
3 [报告]
发表于 2007-01-28 20:29 |只看该作者
3,  一球从100米的高度落下,每次落地后反跳高度的一半再落下,求它人第10次落地时,是从什么高度落下的,第10次落地时,球经过了多少米?

等比数列求和,以及等比数列给定通项求第 n 项

论坛徽章:
0
4 [报告]
发表于 2007-01-28 20:37 |只看该作者
2,  利用循环计算机: (5+5*5)*(4+4*4)*(3+3*3)*(2+2*2)*(1+1*1)*(1/2+1/3+1/4+1/5)

题目的要求不明确。像这样的循环,是否也可以呢?do { statements } while (0);

论坛徽章:
0
5 [报告]
发表于 2007-01-28 20:55 |只看该作者
langue姐,你帮我看看第三个题是不是这么做的!~~
#include<stdio.h>
main()
{
        float l=100,i,n=0;
        for(i=1;i<10;i++)
        {       n=l+n;
                l=l/2;
        }
        printf("%f\t%f",n,l);
}
第二个题是不是这样
#include<stdio.h>
main()
{
        float i,sam1,sam2,s1=1,s2=0;
        for(i=5;i>0;i--)
        {
                sam1=1/i;
                s2=s2+sam1;
                sam2=i+i*i;
                s1=s1*sam2;
        }
        printf("%f\n",s1*s2);
}

[ 本帖最后由 piaoyizu 于 2007-1-28 21:11 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-01-28 22:06 |只看该作者
--

若:
{An} 为下落时经过的路程
{Bn} 为弹起时经过的路程
其中 n 是非零自然数
并令 {An} 与 {an}、{Bn} 与 {bn} 分别等价

则有:
An = A1 * [(1/2)^(n-1)]
Bn = A1 * [(1/2)^(n)] = B1 * [(1/2)^(n-1)]

San = {A1 * [1-(1/2)^(n)]} / [1-(1/2)]
Sbn = {B1 * [1-(1/2)^(n)]} / [1-(1/2)]

A1 = 100,  B1 = 50,  n = 10

S = Sa10 + Sb10 - B10
  = {3B1 * [1-(1/2)^n]} / [1-(1/2)] - {A1 * [(1/2)^n]}
  = {150 * [1-(1/2)^10]} / [1-(1/2)] - [100 * (1/2)^10]
  ~= 299.61

单位为米.


这个是第 10 次落地时球经过的路程。

如果要算第 10 次落下前的高度,求 A10 即可。

#include <stdio.h>
#include <math.h>

#define q  0.5
#define A1 100.0
#define B1 (A1*0.5)
#define n  10

int
main(int argc, char **argv)
{
    float f1, f2;

    f1 = A1 * pow(q, n-1);
    f2 = (B1*3 * (1 - pow(q, n)) ) / (1-q)
         - (A1 * pow(q, n));
    printf("%f, %f\n", f1, f2);

    return 0;
}

论坛徽章:
0
7 [报告]
发表于 2007-01-28 22:35 |只看该作者
langue姐,那第一题呢,我没做出那个题!~~

论坛徽章:
0
8 [报告]
发表于 2007-01-28 22:44 |只看该作者
没技术含量的题

论坛徽章:
0
9 [报告]
发表于 2007-01-28 23:07 |只看该作者
1.忽略了带小数的情况,用float比较合适
3.有点小问题,上面的代码循环了9次.实际上的经过的距离是100+50*2+25*2+...,所以,
printf("%f,%f\n",100+(100*(1-pow(0.5,9)))/0.5,100*paw(0.5,9));

[ 本帖最后由 japuser 于 2007-1-29 00:18 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2007-01-28 23:12 |只看该作者
是啊,没办法,我刚刚学到c的循环这一块,不过题我都解出来了,对你们不算什么,对我刚学习的人可能还是有点挑战的。哦了,谢谢大家!~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP