Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Scanner;
- public class _4_CrossingSequences {
- private final static int MaxNum = 1000000;
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Scanner scan = new Scanner(System.in);
- int tribNum1 = scan.nextInt();
- int tribNum2 = scan.nextInt();
- int tribNum3 = scan.nextInt();
- int startNum = scan.nextInt();
- int step = scan.nextInt();
- boolean foundBothSeqNumber = false;
- if (startNum != tribNum1 && startNum != tribNum2
- && startNum != tribNum3) {
- ArrayList<Integer> tribSeq = calculateAndCreateTribonacciSequence(
- tribNum1, tribNum2, tribNum3);
- foundBothSeqNumber = findHasNumberInBothSequencesAndPrintHim(
- startNum, step, foundBothSeqNumber, tribSeq);
- } else {
- foundBothSeqNumber = true;
- System.out.println(startNum);
- }
- if (!foundBothSeqNumber) {
- System.out.println("No");
- }
- }
- private static boolean findHasNumberInBothSequencesAndPrintHim(int start,
- int step, boolean foundBothSeqNumber, ArrayList<Integer> tribSeq) {
- int spiralNum = start;
- int counter = 1;
- while (spiralNum <= MaxNum) {
- if (tribSeq.contains(spiralNum)) {
- foundBothSeqNumber = true;
- System.out.println(spiralNum);
- break;
- }
- spiralNum += step * (counter / 2);
- counter++;
- }
- return foundBothSeqNumber;
- }
- private static ArrayList<Integer> calculateAndCreateTribonacciSequence(
- int trib1, int trib2, int trib3) {
- // TODO Auto-generated method stub
- ArrayList<Integer> tribonacci = new ArrayList<Integer>();
- tribonacci.add(trib1);
- tribonacci.add(trib2);
- tribonacci.add(trib3);
- int tribN = 0;
- do {
- tribN = trib1 + trib2 + trib3;
- trib1 = trib2;
- trib2 = trib3;
- trib3 = tribN;
- if (tribN <= MaxNum) {
- tribonacci.add(tribN);
- }
- } while (tribN < MaxNum);
- return tribonacci;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement