欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《算法竞赛入门经典(第二版)》习题(一)

程序员文章站 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;
}


相关标签: 算法 C语言