07.03-C

来源:互联网 发布:手机视频播放器 知乎 编辑:程序博客网 时间:2024/06/05 11:40

【项目2:麻烦的累加涨功夫】
计算(1)   (2)
关注效率,要求用单重循环完成,第一个式子的计算不能用求幂函数pow()

题一:解答
#include <stdio.h>
#include <stdlib.h>


int main()
{
    int i=0,iDivisor=1,iSign=1;
    double dSum=0;
    for(i=0;i<=8;++i)
    {
        dSum=dSum+iSign*(1.0/iDivisor);
        iDivisor=2*iDivisor;
        iSign=-iSign;
    }
    printf("the sum is %lf",dSum);
    return 0;
}
题二:解答
#include <stdio.h>
#include <stdlib.h>


int main()
{
    int i=1,iDivisor=1,iSign=1;
    double dSum=0;
    for(i=1;i<=9;++i)
    {
        dSum=dSum+iSign*(1.0/iDivisor);
        iDivisor=iDivisor*(i+1);
        iSign=-iSign;
    }
    printf("the sum is %lf",dSum);
    return 0;
}
【项目5:在北京买房】

现在北京有一套房子,价格200万,假设房价每年上涨10%,一个软件工程师每年固定能赚40万。如果他想买这套房子,不贷款,不涨工资,没有其他收入,每年不吃不喝不消费,那么他需要几年才能攒够钱买这套房子?

解法:
#include <stdio.h>
#include <stdlib.h>


int main()
{
    int i=1;
    double dRate=0.1,dS_housevalue=0;
    double dIncome=40,dHousevalue=200,dS_income;
    do
    {
      dS_housevalue=dHousevalue*(1+dRate);
      dS_income=dIncome*(i+1);
      ++i;
    }while(dS_housevalue>=dS_income);
    printf("it will take %d years to buy a house in beijing\n",i);
    return 0;
}

【项目4:贪财的富翁】
一个百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我两分钱,第三天我仍给你十万元,你给我四分钱,....,你每天给我的钱是前一天的两倍,直到满一个月(30天),百万富翁很高兴,欣然接受了这个契约。请编程序,通过计算说明,这个换钱计划对百万富翁是否是个划算的交易。
提示:(1)需要计算出30天后陌生人给了百万富翁多少钱,百万富翁给了陌生人多少钱,然后才能做出判断;(2)想要看得清楚,可以选择列出每一天双方交易获得的钱数。
解法:
#include <stdio.h>
#include <stdlib.h>


int main()
{
    int i;
    double dMoney=10000,dS_money=0;
    double dCash=0.01,dS_cash=0;
    for(i=1;i<=30;++i)
    {
        dS_money=i*dMoney;
        dCash=2*dCash;
        dS_cash=dS_cash+dCash;
    }
    if(dS_money<dS_cash)
    {
        printf("that millionaire is a SB\n");
    }
    else if(dS_money<dS_cash)
    {
        printf("that deal is even,boring!\n");
    }
    else
    {
       printf("that stranger is a SB\n");
    }
    return 0;
}
【项目3:Bessel函数】
Bessel函数Jn(X)有以下的递推关系:

 编写程序,利用递推关系,由任意的n和x≠0求Jn(X)。
解法:

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


int main()
{
    printf("please enter tha values of n and x:");
    int i=1;
    int n;
    double x;
    double dJ0,dJ1,dJn;
    scanf("%d %lf",&n,&x);
    dJ0=sin(x)/x;
    dJ1=sin(x)/(x*x)-cos(x)/x;
    for (i=1;i<=n;++i)
    {
       dJn=(2i+1)*dJ1/x-dJ0;
       dJ0=dJ1;
       dJ1=dJn;
    }
    printf("jn=%lf\n",dJn);




    return 0;
}

【项目1:另类求和】
求 Sn=a+aa+aaa+...+aa...a之值,其中 a是一个数字。
例如2+22+222+2222( 此时a=2,n=4),a和n均由键盘输入。
解法:
#include <stdio.h>
#include <stdlib.h>


int main()
{
    int a=0,n=0,Sn=0,Tn=0;
    int i=1;
    printf("please enter a and n:");
    scanf("%d %d",&a,&n);
    Tn=a;
    for(i=1;i<=n;++i)
    {
        Sn=Sn+Tn;
        Tn=10*Tn+a;
    }
    printf("the sum is:%d",Sn);


    return 0;
}
















0 0
原创粉丝点击