算法竞赛入门经典(第二版)习题解答参考(一)

习题1-1 平均数(average) 

#include
#include
using namespace std;

int main()
{
	int a,b,c;
	scanf("%d %d %d",&a,&b,&c);
	printf("%.3lf",( a+b+c )/3.0 );
	
}

习题1-2 温度(temperature)

#include
#include
using namespace std;
int main()
{
	int f;
	while(scanf("%d",&f)!=EOF)
	{
		double c = 5*(f-32)/9.0;
		printf("%.3lf",c );
	}
}
习题1-3 连续和(sum) 
#include
#include
using namespace std;

int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		printf("%d\n",(1+n)*n/2);
	}
}
 习题1-4 正弦和余弦(sin和cos) 
//hint:sin,cos里面是弧度

#include
#include
#include
#define PI 4*atan(1.0)
using namespace std;

int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		double sinn = sin(n*PI/180);
		double cosn = cos(n*PI/180);
		printf("sin(%d)=%.3lf\ncos(%d)=%.3lf\n",n,sinn,n,cosn);
	}
}
习题1-5 打折(discount) 
#include
#include
using namespace std;

int main()
{
	int oneclose = 95;
	double discount = 0.85;
	int n;//需要买的衣服的数量; 
	while(scanf("%d",&n))
	{
		double sum = n*oneclose;//总价钱。 
		if(sum>=300)
		{
			sum*= discount; 
		}
		printf("%.2lf\n",sum);
	}
}
习题1-6 三角形(triangle) 
#include
#include
using namespace std;

int main()
{
	int a,b,c;
	while(scanf("%d %d %d",&a,&b,&c))
	{
		if(a>b) swap(a,b);
		if(a>c) swap(a,c);
		if(b>c) swap(b,c);
		
		if(a*a+b*b == c*c)
		{
			printf("yes\n");
		}
		else if( (a+b)>c )
		{
			printf("no\n");
		}
		else
		{
			printf("not a triangle\n");
		}
	}
}
习题1-7 年份(year) 
#include
#include
using namespace std;

int main()
{
	int year ;
	while(scanf("%d",&year)!=EOF)
	{
		if(year%400==0)
		{
			printf("yes\n");
		}
		else if(year%4==0 && year%100)
		{
			printf("yes\n");
		}
		else
		{
			printf("no\n");
		}
	}
}

你可能感兴趣的:(数据结构与算法)