Loading...
Vasetoo0 avatar Vasetoo0 5 Точки

Задача 5.Messages от More Exercise Introduction Java - Малко помощ?

Здравейте, може ли малко помощ на тази задача :

Write a program, which emulates typing an SMS, following this guide:

1

2

abc

3

def

4

ghi

5

jkl

6

mno

7

pqrs

8

tuv

9

wxyz

 

0

space

 

Following the guide, 2 becomes “a”, 22 becomes “b” and so on.

Examples

Input

Output

 

Input

Output

 

Input

Output

5

44

33

555

555

666

hello

9

44

33

999

0

8

44

33

777

33

hey there

7

6

33

33

8

0

6

33

meet me

Hints

  • A native approach would be to just put all the possible combinations of digits in a giant switch statement.
  • A cleverer approach would be to come up with a mathematical formula, which converts a number to its alphabet representation:

Digit

2

3

4

5

6

7

8

9

  • Index
  • 0 1 2
  • 3 4 5
  • 6 7 8
  • 9 10 11
  • 12 13 14
  • 15 16 17 18
  • 19 20 21
  • 22 23 24 25
  • Letter
  • a b c
  • d e f
  • g h i
  • j  k  l
  • m  n  o
  • p  q  r  s
  • t u v
  • w  x  y  z
  • Let’s take the number 222 (c) for example. Our algorithm would look like this:
    • Find the number of digits the number has “e.g. 222 è 3 digits
    • Find the main digit of the number “e.g.  222 è 2
    • Find the offset of the number. To do that, you can use the formula: (main digit - 2) * 3
    • If the main digit is 8 or 9, we need to add 1 to the offset, since the digits 7 and 9 have 4 letters each
    • Finally, find the letter index (a è 0, c è 2, etc.). To do that, we can use the following formula: (offset + digit length - 1).
    • After we’ve found the letter index, we can just add that to the ASCII code of the lowercase letter “a” (97)

И трите Zero Testove минават и след това се чупи някъде. Моля някой за малко съвет? 

Ето до къде съм стигнал: https://pastebin.com/8A191U9b 

 

Това е линк към JUdge: https://judge.softuni.bg/Contests/Practice/Index/1461#4

Тагове:
0
Fundamentals Module
Hristo13 avatar Hristo13 227 Точки

Малко ти промених кода. Добавих една string променлива "message" и в нея се добавя буква по буква вместо да принтира всеки път след въвеждане на номер.

 

 

https://pastebin.com/75dHS2EJ

0
24/01/2019 20:55:17
Vasetoo0 avatar Vasetoo0 5 Точки

Благодаря, колега! От цял ден решаване явно съм зациклил накрая.

0
svetlakrasteva avatar svetlakrasteva 7 Точки

С формулите дадени като подсказка се решава на 20 реда.

Пазгледай,ако искаш.

https://pastebin.com/HCvhqk4F

0
Gemino avatar Gemino 18 Точки

Evala, blagodarya mnogo mi pomogna! :)

0
radytokilingspre avatar radytokilingspre 0 Точки

Много добре написано и страшно помогна. Само бих сменил този ред "offset = (mainDigit - 2) * 3 + 1;" с "offset++;",  понеже е същото. 

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.