题目连接:
http://acm.hust.edu.cn/vjudge/contest/122701#problem/B
Description
Sgeoghy has addicted herself to an interesting computer game! In this game, she needs to control a robot to pick up a required number of components. There are a lot of components lying in a line with arbitrary intervals, indexed from left to right, starting with 1. No two or more components share the same position. In the beginning, the robot starts at a random position where a component lies, and the robot should pick it up. Then on each step, the player can program the robot, by controlling its moving direction (left or right) as well as moving distance. After each step of moving, if there is a component at the destination, the robot will pick it up; But if not, the robot will die and the game will be over.
Unfortunately, Sgeoghy is poor at programming. She can only make the robot move a fixed distance towards a fixed direction (left or right) every single step. For example, the positions of the components are:
and the robot starts at the position of 5-th component. If Sgeoghy controls the robot to move a fixed distance 2 and a fixed direction right on each step, the robot can pick up 3 components indexed as 5, 6, 8, and dies at Position 15.
At first, Sgeoghy can barely complete the missions. However, since the mission is getting harder and harder, she is getting stuck. Now she is facing a mission that the positions of the components are:
and the robot starts at the position of y-th component. The robot is required to pick up 100 components to complete this mission. Can you help her? Since she can only program the robot to move a fixed distance towards a fixed direction, it may be impossible for her to complete this mission. However, you should still tell her the most components she can get.
Input
The first line contains an integer T (1 ≤ T ≤ 30), indicating the number of test cases.
For each test case:
A line contains an integer y (1 ≤ y ≤ 10^100), indicating that the robot starts at the position of y-th component.
Output
For each test case:
The first line contains an integer n, indicating either the maximum possible number of components (1 ≤ n < 100) that the robot can pick up in this mission, or n=100 if Sgeoghy is able to complete this mission.
Then follows n lines, the i-th line contains an integer xi, indicating the index of the i-th component picked up by the robot. Obviously, x1=y and x1,x2,...,xn are sequenced in strictly monotonic order. If there are several solutions, output any one.
Sample Input
1
7661
Sample Output
3
7661
5417
5
Hint
题意
第i个零件的位置是i(i+1)
有个机器人,一开始站在第y个零件的位置,这个机器人只能往前一直走,或者一直往下走,然后每一步的距离也必须相同,且每一步都必须踩到零件上面。
问你这个机器人最多走多少步,且把每一步的零件坐标输出。
题解:
看了下样例,感觉最多走三步。
打表找规律,发现输入x,输出5x+2,和7x+3就好了
猜到结论之后,证明就很简单了,这儿省略。
代码
import java.io.*;
import java.math.*;
import java.util.*;
public class Main
{
public static void main(String argv[]) throws Exception
{
Scanner cin = new Scanner(System.in);
int T = cin.nextInt();
for( int cas = 1 ; cas <= T ; ++ cas ){
BigInteger index = cin.nextBigInteger();
System.out.println("3");
System.out.println( index );
System.out.println( index.multiply(BigInteger.valueOf(5)).add(BigInteger.valueOf(2)) );
System.out.println( index.multiply(BigInteger.valueOf(7)).add(BigInteger.valueOf(3)) );
}
}
}