Задача 6. Number Generator (Java)
Някой може ли да ме светне къде точно ми се чупи задачата? Благодаря предварително.
import java.util.Scanner; public class NumberGenerator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int m = Integer.parseInt(scanner.nextLine()); int n = Integer.parseInt(scanner.nextLine()); int l = Integer.parseInt(scanner.nextLine()); int sum = 100*m + 10*n + l; int specNumber = Integer.parseInt(scanner.nextLine()); int controlNumber = Integer.parseInt(scanner.nextLine()); boolean isReached = false; for (int i = sum; i >= 111; i--) { if (i % 3 == 0){ specNumber += 5; } else if(i % 10 == 5){ specNumber -= 2; } else if(i % 2 == 0){ specNumber *= 2; } if (specNumber >= controlNumber){ isReached = true; break; } } if (isReached){ System.out.printf("Yes! Control number was reached! Current special number is %d.", specNumber); } else { System.out.printf("No! %d is the last reached special number.", specNumber); } } }
Благодаря за помощта. Не разбирам защо да не мине през 973-972-971-970...т.е защо трябва да е с три цикъла, а не с един?
Защото при твоя вариант ги сваля последователно 71-70-69 и т.н а тук се прескачат числа както виждаш от примера който е даден в случея намаля 2-рото число и ако не си достигнал контролното число после ще започне и 1-вото да се сваля от типа на 873 872....... и накрая 773 772 771.... и т.н .С други думи при 973 имаш 3 итерации за ,после пак 3 за следващото след 7(в случея преди 7 защото е обратен цикъл) 9(6)3,2,1, -> 9(5)3,2,1 -> 9(4)3,2,1 а при твоя вариант са последователни тук са през 10 нали виждаш 963 , 953 и надолу.Трябват ти 3 цикъла защото последния е броя завъртания а 1-вият и 2-рият е кой числа реално се завъртат + последните итерации.Ако числото беше 955 щеше да имаш по 5 завъртания на всяко(2ро число) 9(5)5,4,3,2,1 -> 9(4)5,4,3,2,1 и т.н докато при твоята формула щяха да са последователни 955,954,953,952,951,950,949 и нямаше да е вярно.