flower 69
window 78
curtain 76 //тук трябва да се натиска Enter, програмата да тръгне нататък.
//след натискането на Enter се принтира празната линия
book 33 //и най накрая се принтират останалите резултати.
64.0
Angel and Bibkata have very weird taste - their last idea of fun is calculating the “distance” that a word is from a given number. The distance is calculated by summing the position in the alphabet of each letter in the word and than finding the absolute difference between that word and another predefined number. You are a programmer so you must ruin their fun by automating the process.
Както при една друга задача, където ползвашe nextInt(), който не преминава на следващия ред, тук идва от next(), който има сходно поведение, само че вместо да чете “token”, в който да има само цифри, чете “token”, в който има само a-z символи. Съответно успява да открие всички такива token-и, като междувременно е прескочил всички символи за нов ред без последния, където зависва и се налага да терминираш с един допълнителен enter, както сам си открил.
Здравей Едвард,
Аз го сменях на nextLine() и правеше същото, затова пробвах с BufferedReader(), чесно казано така и не успях да разбера какъв беше проблем, но самата задача я реших ето по този начин:
Иначе искам да реша и вторият вариант на решението който постнах по-нагоре (Distant Words_2), и който чуства сигурен e добре дошъл да контрибютне идеите/мислите си относно начините на имплементиране на метода:
printDistance(String[] array, int target)
че засега не успях да го имплементирам както трябва,
иначе
public static String[] getArrayOfStrings(int a)
е готов.
Реших задачата,но по друг начин. Разгледах кода който си написал и не мога да разбера как работи това: sum += word[j] - 96; Защо -96?
Предполагам е свързано с ASCII Table, но как точно работи ?
Всеки един character от string може да бъде представен като целочислен тип.
Буквата ‘А’ е представена от числото 97 и оттам идва логиката за да нумерираш числата от A-Z.
За да бъде ‘А’ първата буква от азбуката трябва да извадиш от нейната числена стойност 96.
‘Z’ е 122, 122 - 96 ни дава 26.Така получаваме ,че ‘А’ е буква номер 1 ,а ‘Z’ буква номер 26 от английската азбука,което е вярно.