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 } }