算法竞赛入门经典第一章习题解答

习题1-1 平均数(average)

/*
   题目:平均数(average)
   描述:输入3个整数,求出他们的平均值,保留三位小数
*/
#include<cstdio>
int main()
{
    int num1,num2,num3;
    scanf("%d%d%d",&num1,&num2,&num3);
    double ave=(num1+num2+num3)/3.0;
    printf("%.3lf\n",ave);
    return 0;
}

习题1-2 温度(temperature)

/*
   题目:温度(temperature)
   描述:输入华氏温度f,输出对应的摄氏温度c,保留三位小数。提示:c=5(f-32)/9;
*/
#include<cstdio>
int main()
{
    double c,f;
    scanf("%lf",&f);
    c=5*(f-32)/9.0;
    printf("%.3lf\n",c);
    return 0;
}

习题1-3 求和 (sum)

/*
   题目:连续和(sum)
   描述:输入正整数n,输出1+2+3+...+n的值。提示:目标是解决问题,不是练习编程。
*/
#include<cstdio>
int main()
{
    int n;
    scanf("%d",&n);
    int sum=n*(n+1)/2;
    printf("%d\n",sum);
    return 0;
}

习题1-4 正弦和余弦(sincos)

/*
   题目:正弦和余弦(sum)
   描述:输入正整数n(n<360),输出n度的正弦、余弦函数值
*/
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstdio>
const double pi=4.0*atan(1.0);
int main()
{
    int n;
    scanf("%d",&n);
    printf("%lf %lf\n",sin(n/180.0*pi),cos(n/180.0*pi));
    return 0;
}


习题1-5 距离(distance)

/*
   题目:距离(distance)
   描述:输入4个浮点数x1,y1,x2,y2,输出平面坐标系中点(x1,y1)到(x2,y2)的距离
*/
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstdio>
#include<cmath>
int main()
{
    double x1,y1,x2,y2;
    scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
    printf("%lf\n",sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));
    return 0;
}

习题1-6 偶数(odd)

/*
   题目:偶数(odd)
   描述:输入一个整数,判断它是否为偶数。如果是,则输出"yes",否则输出"no"。
*/
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstdio>
#include<cmath>
int main()
{
    int n;
    while(scanf("%d",&n)==1)
    {
        if(n%2==0)
        {
            printf("yes\n");
        }
        else
        {
            printf("no\n");
        }
    }
    return 0;
}

习题1-7 打折(discount)

/*
   题目:打折(discount)
   描述:一件衣服95元,若消费满300元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数。
*/
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstdio>
#include<cmath>
int main()
{
    int n;
    while(scanf("%d",&n)==1)
    {
        if(n>3)
        {
            printf("%.2lf\n",95*n*0.95);
        }
        else
        {
            printf("%.2lf\n",95*n*1.0);
        }
    }
    return 0;
}

习题1-8  绝对值(abs)

/*
   题目:绝对值(discount)
   描述:输入一个浮点数,输出它的绝对值,保留两位小数。
*/
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstdio>
#include<cmath>
int main()
{
    double n;
    while(scanf("%lf",&n)==1)
    {
        printf("%.2lf\n",fabs(n));
    }
    return 0;
}

习题1-9 三角形 (triangle)

/*
   题目:三角形(triangle)
   描述:输入三角形三边长度值(均为正整数),判断它是否能为直角三角形的三个边长,如果可以,输出"yes",否则输出"no"。如果根本无法构成三角形,则输出"not a triangle"。
*/
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstdio>
#include<cmath>
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(a+b>c&&a+c>b&&c+b>a)
    {
        if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
        {
            printf("yes\n");
        }
        else
        {
            printf("no\n");
        }
    }
    else
    {
        printf("not a triangle\n");
    }
    return 0;
}


习题1-10 年份(year)

/*
   题目:年份(year)
   描述:输入年份,判断是否为闰年。如果是,则输出"yes",否则输出"no"。
*/
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstdio>
#include<cmath>
int main()
{
    int year;
    scanf("%d",&year);
    if((year%4==0&&year%100!=0)||(year%400==0))
    {
        printf("yes\n");
    }
    else
    {
        printf("no\n");
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2015-04-04 11:53  Tob__yuhong  阅读(153)  评论(0编辑  收藏  举报

导航