算法竞赛入门经典(第二版)刘汝佳 第一章习题答案

菜鸟成长计划(一)

习题1-1 平均数(average)

输入3个整数,输出它们的平均值,保留3位小数。

#include <stdio.h>
int main(){
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("%.3f\n",(a+b+c)/3.0);
    return 0;
}

习题1-2 温度(temperature)

输入华氏温度f,输出对应的摄氏温度c,保留3位小数。提示:c=5(f-32)/9。

#include <stdio.h>
int main(){
    int f;
    scanf("%d",&f);
    printf("%.3f\n",5.0*(f-32)/9.0);
    return 0;
}

习题1-3 连续和(sum)

输入正整数n,输出1+2+…+n的值。

#include <stdio.h>
int main(){
    int n,sum=0;
    scanf("%d",&n);
    //printf("%d\n",n*(n+1)/2);
    for(int i=1;i<=n;i++)
    sum+=i;
    printf("%d\n",sum);
    return 0;
}

习题1-4 正弦和余弦(sin和cos)

输入正整数n(n<360),输出n度的正弦、余弦函数值。提示:使用数学函数。

#include <stdio.h>
#include<math.h>
int main(){
    int n;
    double pi=acos(-1.0);
    scanf("%d",&n);
    printf("%f %f\n",sin(n/180.0*pi),cos(n/180.0*pi));
    //将角度进行转化,例如 30°转化为 pi/6 
    return 0;
}

习题1-5 打折 (discount)

一件衣服95元,若消费满300元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数。

#include <stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    printf("%.2f\n",95.0*n>300.0?95.0*n*0.85:95.0*n);
    return 0;
}

习题1-6 三角形(triangle)

输入三角形3条边的长度值(均为正整数),判断是否能为直角三角形的3个边长。如果可以,则输出yes,如果不能,则输出no。如果根本无法构成三角形,则输出not a triangle。

#include <stdio.h>
int main(){
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(a+b>c&&a+c>b&&b+c>a)
        if(a*a+b*b==c*c||a*a+b*b==c*c||b*b+c*c==a*a)
            printf("yes\n");
        else
            printf("no\n");
    else
        printf("not a triangle\n");
    return 0;
}

习题1-7 年份(year)

输入年份,判断是否为闰年。如果是,则输出yes,否则输出no。提示:简单地判断除以4的余数是不够的。
//闰年:能被400整除或者能被4整除但不能被100整除的年份

#include <stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    if(n%400==0||(n%4==0&&n%100!=0))
        printf("yes\n");
    else
        printf("no\n");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值