第一题:曼哈顿距离
问题描述
平面直角坐标系中位于坐标(x1,y1)的i 点与位于坐标(x2,y2)的j点的曼哈顿距离为 :
d(i,j)=∣x1−x2∣+∣y1−y2∣
请编程输入两个点的坐标,输出它们之间的曼哈顿距离。
输入格式
一行四个整数(100 以内),分别表示两个点的坐标(x1,y1)和(x2,y2)。
输出格式
一行一个整数,表示两个点之间的曼哈顿距离。
样例
输入数据1
10 5 6 20
输出数据1
19
题目讲解
本题主要考查C++库函数的掌握情况。
库函数 | 功能 |
---|---|
abs() | 求绝对值 |
acos() | 求反余弦值 |
asin() | 求反正弦值 |
atan() | 求反正切值 |
atan2() | 求两个参数的反正切值 |
ceil() | 向上取整 |
cos() | 求余弦值 |
cosh() | 求双曲余弦值 |
exp() | 求自然指数幂 |
fabs() | 求绝对值 |
floor() | 向下取整 |
fmod() | 求浮点数取模 |
log() | 求自然对数 |
log10() | 求以10为底的对数 |
pow() | 求幂 |
sin() | 求正弦值 |
sinh() | 求双曲正弦值 |
sqrt() | 求平方根 |
tan() | 求正切值 |
tanh() | 求双曲正切值 |
由表格可知fabs()函数可以求绝对值,最后按照题目要求写代码即可
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int x1, y1, x2, y2; //定义4个整型变量
cin >> x1 >> y1 >> x2 >> y2; //从标准输入流输入4个整数
cout << fabs(x1 - x2) + fabs(y1 - y2); //输出两个坐标的曼哈顿距离
return 0; //程序结束
}
第二题:自己写个swap函数
题目描述
第一行输入一个 k,用来表示有 k 组数。 接下来是 k 行,每行有两个数字,用空格隔开。
实现一个函数 void swap(int a, int b)
,有两个参数,第一个为 a ,第二个为 b。 函数运行时,会先输出 b ,再输出 a。中间以空格隔开。
输入格式
第一行输入一个 k,用来表示有 k 组数。 接下来是 k 行,每行有两个数字,用空格隔开。
输出格式
输出 k 行, 每行的数字顺序和输入的数字顺序相反。
样例
输入数据1
4
44 55
66 77
88 99
123 123
输出数据1
55 44
77 66
99 88
123 123
数据范围
1<=k<=100
1<=a,b<=1000000
题目讲解
本题考查C++自定义函数的掌握程度。
C++的swap函数定义在头文件<algorithm>中,一般用于交换两个变量的值。使用时需要注意,swap函数会把传入的参数交换,因此传入的变量必须是可交换的,即类型相同。
不会没关系,自己看看swap函数的示例代码,并放到Dev-C++中运行一下。
#include<iostream>
#include<algorithm> //引入头文件
using namespace std;
int main(){
int a = 2, b = 3;
swap(a, b); //交换a和b的值
cout << "a = " << a << ", b = " << b << endl; //输出结果
return 0;
}
运行结果:
我们试着自己写一个swap函数吧!
代码
#include<bits/stdc++.h>
using namespace std;
void swap(int a, int b){ //自定义swap函数,用于交换两个变量的值
cout << b << " " << a << endl; //输出交换后的结果
}
int main(){
int k;
cin >> k; //输入测试数据组数
while(k--){ //k次测试
int a, b;
cin >> a >> b; //输入需要交换的两个变量
swap(a, b); //调用自定义swap函数,交换两个变量的值,并输出结果
}
return 0;
}
作业:回文质数
题目描述
因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。
写一个程序来找出范围[a,b](5≤a<b≤100,000)(十万)间的所有回文质数。
输入格式
第 1 行: 二个整数 a 和 b .
输出格式
输出一个回文质数的列表,一行一个。
输入数据1
5 500
输出数据1
5
7
11
101
131
151
181
191
313
353
373
383
这题比较难,如果不会做可以来评论区问。