假期编程
此博客链接:https://www.cnblogs.com/ping2yingshi/p/12243098.html
1.两点间距离(10min)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2001
Problem Description
输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。
Input
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
Output
对于每组输入数据,输出一行,结果保留两位小数。
Sample Input
0 0 0 1
0 1 1 0
Sample Output
1.00
1.41
Author
题解:
此题需要知道两点间距离公式:|
设两个点A、B以及坐标分别为
、
,则A和B两点之间的距离为:
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/pic/item/f7246b600c338744b474f94f590fd9f9d72aa054.jpg)
![](https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/pic/item/b8014a90f603738db28bda11bb1bb051f919ecc4.jpg)
![](https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/pic/item/11385343fbf2b211594f214ac38065380cd78e55.jpg)
代码如下:
#include<stdio.h> #include<math.h> int main(void) { double x1,x2,y1,y2; double dis; double temp; while(~scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2)) { dis=0; temp=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); dis=sqrt(temp); printf("%0.2lf\n",dis); } return 0; }
2.第几天(24min)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2005
Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
题解:此题难点在于要判断年份是平年还是润年,平年二月份28天,但是润年二月份29天。
平年润年判断方法:
润年是能被4整除但是不能被100整除的是润年,或者是能被400整除的是润年,其他情况均是平年。
代码如下:
#include<stdio.h> #include<math.h> int main(void) { int year; int month; int day; int i; int month1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//平年 int month2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//润年 while(~scanf("%d/%d/%d",&year,&month,&day)) { int days=0; if((year%4==0&&year%100!=0)||year%400==0)//判断润年 for(i=0;i<month;i++) days=days+month2[i]; else for(i=0;i<month;i++) days=days+month1[i]; days=days+day; printf("%d\n",days); } return 0; }
出来混总是要还的