练习5-1 求m到n之和
本题要求实现一个计算m~n(m<_n_)之间所有整数的和的简单函数。
函数接口定义:
int sum( int m, int n );
其中m
和n
是用户传入的参数,保证有m<_n_。函数返回的是_m_~_n_之间所有整数的和。
裁判测试程序样例:
#include <stdio.h>
int sum(int m, int n);
int main() {
int m, n;
scanf("%d %d", &m, &n);
printf("sum = %d\n", sum(m, n));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
-5 8
输出样例:
sum = 21
解题思路:可枚举或等差数列求和即可。
int sum(int m, int n) {
return (m + n) * (n - m + 1) / 2;
}
练习5-2 找两个数中最大者
本题要求对两个整数a和b,输出其中较大的数。
函数接口定义:
int max( int a, int b );
其中a
和b
是用户传入的参数,函数返回的是两者中较大的数。
裁判测试程序样例:
#include <stdio.h>
int max( int a, int b );
int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("max = %d\n", max(a, b));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
-5 8
输出样例:
max = 8
解题思路:if
条件判断即可
int max(int a, int b) {
return a > b ? a : b;
}
习题5-3 使用函数计算两点间的距离
本题要求实现一个函数,对给定平面任意两点坐标(_x_1,_y_1)和(_x_2,_y_2),求这两点之间的距离。
函数接口定义:**
double dist( double x1, double y1, double x2, double y2 );
其中用户传入的参数为平面上两个点的坐标(x1
, y1
)和(x2
, y2
),函数dist
应返回两点间的距离。
裁判测试程序样例:
#include <stdio.h>
#include <math.h>
double dist( double x1, double y1, double x2, double y2 );
int main()
{
double x1, y1, x2, y2;
scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
printf("dist = %.2f\n", dist(x1, y1, x2, y2));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
10 10 200 100
输出样例:
dist = 210.24
解题思路:使用两点距离公示即可。
double dist( double x1, double y1, double x2, double y2 ) {
return sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
}
Case | Hint | Result | Score | Run Time | Memory |
---|---|---|---|---|---|
0 | sample等价,全正数 | Accepted | 6 | 4 ms | 256 KB |
1 | 有正负,非整数 | Accepted | 2 | 4 ms | 296 KB |
2 | 两点重合 | Accepted | 1 | 4 ms | 296 KB |
3 | 全0 | Accepted | 1 | 4 ms | 232 KB |