Задача 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 и нямаше да е вярно.