Здравейте, опитвам да реша две от задачите, но зациклих сериозно. Всякакви насоки са добре дошли. Поздрави!
Signal from Space
One day a signal from space was registered. Scientists managed to record the signal as a sequence of N symbols. It turned out that due to a technical difficulty some symbols have been repeated. Help the scientists by writing a program which removes consecutive repetitions of symbols, decoding the message.
Input
Input data is read from the standard input
On the only input line, a message is given
Output
Print to the standard output
Print the decoded message
Constraints
The length of the message will be no more than 10000 symbols
Message consists of digits and Latin letters (upper and lower case)
Здрасти, търсих доста, но тази тема съм я пропуснала.
Относно другата задача, мисля, че метода ми куца и накрая бройката не ми излиза, но не можах да си открия грешката.
Здравей,
първо, counter-ът ти започва от 1.
А примерно при вход 57 58 , резултатът би трябвало да е 0.
после:
static boolean checkDivisibility (int n, int digit){
return (digit != 0 && n % digit == 0);
}
Мисля, че ако числото = 0 , пак се брои, че се дели без остатък (поне според техния примерен инпут за 1 10, където резултатът е 10, т.е. всички числа са “добри”, дори 10)
т.е. май така ще трябва да стане:
static boolean checkDivisibility(int n, int digit) {
return (digit == 0 || n % digit == 0);
}
И последно тук:
static boolean allDigitsDivide(int n) {
int temp = n;
while (temp > 0) {
int digit = n % 10; ----> тук n реално никога не се променя, то е извън цикъла. т.е. пробваш да делиш с едно и също число, докато намалиш достатъчно temp, за да излезе от while-a.
вероятно си имала предвид да е int digit = temp % 10;
Btw, тук малко сложно го правиш:
int firstNumber = 0;
int secondNumber = 0;
for (int i = 0; i < arr.length; i++) {
intArr[i] = Integer.parseInt(arr[i]);
if (i % 2 == 0){
firstNumber = intArr[i];
}
else{
secondNumber = intArr[i];
}
}
може да го опростиш цялото до
int firstNumber = Integer.parseInt(arr[0]);
int secondNumber = Integer.parseInt(arr[1]);
Проблема ми идва точно от проверката, ако числото е нула. Иначе си прав, за temp, това го видях, че не променя числото, но промених temp и пак не работеше, но сега всичко е ок.
Изключително благодаря и на двама Ви за насоките.