《算法竞赛入门经典(第二版)》习题(一)
程序员文章站
2024-03-18 23:30:40
...
习题1-1 平均数
输入3个整数,输出它们的平均值,保留3位小数。
#include<stdio.h>
int main()
{
int a,b,c;
double ave;
scanf("%d%d%d",&a,&b,&c);
ave=(a+b+c)/3;
printf("%.3f",ave);
return 0;
}
习题1-2 温度
输入华氏温度f,输出对应的摄氏温度c,保留3位小数。提示:c=5(f-32)/9。
#include <stdio.h>
int main ()
{
double f;
scanf("%lf",&f);
printf ("%.3f",5.0*(f-32.0)/9.0);
return 0;
}
习题1-3 连续和
输入正整数n,输出1+2+…+n的值。
#include<stdio.h>
int main(){
int n,sum;
sum=n*(n+1)/2;
scanf("%d",&n);
printf("%d",sum);
return 0;
}
习题1-4 正弦和余弦
输入正整数n(n<360),输出n度的正弦、余弦值。提示:使用数学函数。
解析:需要先把角度值转换为弧度值,利用公式:弧度值=n/180*π。
#include <stdio.h>
#include <math.h>
int main()
{
// 定义pi的值
const double PI = acos(-1.0);
int n ;
scanf("%d", &n);
// 数学函数使用弧度
printf("%.3f\n%.3f\n", sin(n/180.0*PI), cos(n/180.0*PI));
return 0;
}
习题 1-5 打折
一件衣服95元,若消费满300元,打八五折。输入购买衣服的件数,输出需要支付的金额(单位:元),保留两位小数。
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
double sum=95*n;
if(95*n<300){
sum=95*n;
}
else{
sum=95*n*0.85;
}
printf("%.2f\n",sum);
return 0;
}
习题 1-6 三角形
输入三角形3条边的长度值(均为正整数),判断是否能为直角三角形的3条边长。如果可以,输出yes,如果不能,输出no。如果根本无法构成三角形,则输出no 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(b*b+c*c==a*a||a*a+c*c==b*b||a*a+b*b==c*c){
printf("yes\n");}
else
{printf("no\n");}
}
else
{printf("not a tringle\n");}
return 0;
}
习题 1-7 年份
输入年份,判断是否为闰年。如果是,则输出yes,否则输出no。提示:简单地判断除以4的余数是不够的。
解析:闰年需要满足2个条件:1、能被4整除,且不能被400整除。 2.能被400整除。
#include<stdio.h>
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;
}
上一篇: 2020“图灵杯”趣味网络邀请赛 B. 回文串(构造+二分)
下一篇: 算法竞赛入门经典第三章