算法竞赛入门经典 第一章 上机练习(C++代码)

//平均数(average)
//输入3个整数,输出它们的平均值,保留3位小数。
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
	int a,b,c;
	cin>>a>>b>>c;
	double average=(a+b+c)/3;	//三个数的和除以它们的个数为平均值
	cout<<setiosflags(ios::fixed)<<setprecision(3)<<average<<endl;
	return 0;
}

//温度(temperature)
//输入华式温度f,输出对应的摄氏温度c,保留3位小数。提示:c=5(f-32)/9
#include<iostream>
#include<iomanip>			//使用了输出格式符
using namespace std;

int main()
{
	double f,c;				//华式温度应为double型
	cin>>f;
	c=5*(f-32)/9;			//求华氏温度公式
	cout<<setiosflags(ios::fixed)<<setprecision(3)
		<<c<<endl;
	return 0;
}

//连续和(sum)
//输入正整数n,输出1+2+……+n的值。提示:目标是解决问题,而不是练习编程
#include<iostream>
using namespace std;

int main()
{
	int n,i=1,sum=0;
	cin>>n;
	while(i<=n)		//循环条件从1到n
	{
		sum+=i;		//累加和
		++i;		//计数器
	}
	cout<<sum<<endl;
	return 0;
}

//正弦和余弦(sincos)
//输入正整数n(n<360),输出n度的正弦、余弦函数值。提示:使用数学函数
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
	double n;
	cin>>n;
	cout<<sin(n)<<" "<<cos(n)<<endl;
	return 0;
}

//距离(distance)
//输入4个浮点数x1,y1,x2,y2,输出平面坐标系中点(x1,y1)到点(x2,y2)的距离
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
	double x1,y1,x2,y2;
	cin>>x1>>y1>>x2>>y2;
	//两点之间的距离公式为(x2-x1)^2+(y2-y1)^2的开根方
	//sqrt是求开根方的函数,pow是求一个数的平方
	cout<<sqrt(pow((x2-x1),2)+pow((y2-y1),2))<<endl;
	return 0;
}

//偶数(odd)
//输入一个整数,判断它是否为偶数。如果是,则输出“yes”,否则输出“no”。
#include<iostream>
using namespace std;

int main()
{
	int n;
	cin>>n;
	if(n%2==0)		//判断条件
		cout<<"yes"<<endl;
	else cout<<"no"<<endl;
	return 0;
}


//打折(discount)
//一件衣服95元,若消费满300元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
	int n;
	double m;
	cin>>n;
	if(n*95>=300)
		m=n*95*0.85;
	else m=n*95;
	cout<<setiosflags(ios::fixed)<<setprecision(2)<<m<<endl;
	return 0;
}

//绝对值(abs)
//输入一个浮点数,输出它的绝对值,保留两位小数

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
	double n;
	cin>>n;
	n=abs(n);			//调用库函数求绝对值
	cout<<setiosflags(ios::fixed)<<setprecision(2)
		<<n<<endl;
	return 0;
}

//三角形(triangle)
//输入三角形三边长度值(均为正整数),判断它是否能为直角三角形的三个边长。
//如果可以,则输出“yes”,如果不能,则输出“no”。如果根本无法构成三角形,则输出“not a triangle”
#include<iostream>
using namespace std;

int main()
{
	int a,b,c;
	cin>>a>>b>>c;
	if(a*a+b*b==c*c)
		cout<<"yes"<<endl;
	if(a+b<c||a+c<b||b+c<a)
		cout<<"not a triangle"<<endl;
	else cout<<"no"<<endl;
	return 0;
}


//年份(year)
//输入年份,判断是否为闰年。如果是,则输出“yes”,否则输出“no”。
#include<iostream>
using namespace std;

int main()
{
	int year;
	cin>>year;
	if(year%4==0)
	{
		if(year%100==0)
			cout<<"yes"<<endl;
		else if(year%400!=0)
			cout<<"yes"<<endl;
		else cout<<"no"<<endl;
	}
	else cout<<"no"<<endl;
	return 0;
}

posted on 2012-03-24 16:47  1.曲待续  阅读(246)  评论(0编辑  收藏  举报

导航