版权声明:iQXQZX https://blog.csdn.net/Cherishlife_/article/details/86321323
Shift Dot
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
给出平面直角坐标系中的一点,并顺序给出n个向量,求该点根据给定的n个向量位移后的位置。
Input
多组输入,第一行是三个整数x,y,n,表示点的坐标(x,y),和向量的个数n。接下来n行,每行两个数xi,yi,表示第i个向量。题目中所有数据不会超出整形范围。
Output
每组输入输出一行,"(x,y)"表示点的最终位置。
Sample Input
0 0 1 2 3 0 0 2 1 2 2 3
Sample Output
(2,3) (3,5)
Hint
Source
学习到的内容:
建立 新类 类型的函数 并 传入 该类对象 进行操作
在对象中修改对象
返回新的对象
并付给原对象
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
CountVector t = new CountVector(in.nextInt(), in.nextInt());
int n = in.nextInt();
for (int i = 0; i < n; i++) {
CountVector t1 = new CountVector(in.nextInt(), in.nextInt());
t = t.sum(t1); // 加上 t1的x y
}
System.out.println("(" + t.x + "," + t.y + ")");
}
}
}
class CountVector {
int x, y;
public CountVector(int x, int y) {
this.x = x;
this.y = y;
}
public CountVector sum(CountVector t) { // 传入 返回 CountVector类型的的变量
x += t.x; // 加上新的点的响亮
y += t.y;
return new CountVector(x, y); // 在创建新的对象 返回给 原对象 t
}
}