12 годин на 24 години перетворювач часу


27

Дивно, але це просте завдання, здається, вже не існує, тому ...

Ваше завдання - написати програму, яка сприймає як введення 12-годинний час, і перетворює її у "військовий час", або 24-годинний формат часу.

Введення буде у формі:

HH:MM am/pm

Хоча можливі незначні зміни:

  • Простір, що відокремлює am / pm від решти часу, необов’язково.

  • Остання частина може бути або "am" / "pm", або "a" / "p".

  • Будь-яка капіталізація - це добре.

Результатом буде введений час, перетворений у 24-годинний формат. Це може бути число або рядок.

Як для вводу, так і для виходу:

  • 0 в першу чергу необов’язкові. 0 на останніх 3 місцях є обов'язковими.

  • Розмежувач, що розділяє години і хвилини, може бути ":", "" (пробіл) або нічого.

Інші примітки:

  • Опівночі можна виразити або 0000, або 2400.

  • Опівночі вважатиметься "ранку", а полудень вважатиметься "вечором".

Ваша програма може бути функцією або повноцінною програмою, і вона повинна або повернути результат, або вивести його в stdout. Пробіл пробілів у порядку.

Приклади (не потрібно підтримувати кожен формат):

12:00am -> 0000
1200 pm -> 1200
1234Am  -> 00:34
134a    -> 134
01:34PM -> 13 34
1234pm  -> 1234  

Це кодовий гольф, тому виграє найменша кількість байтів. Оскільки це настільки банально для вирішення за допомогою вбудованого, було б непогано побачити якийсь код, який вирішує це вручну (але використання вбудованих файлів добре).

Для уточнення вам не потрібно підтримувати всі можливі формати. Підтримка лише одного входу та одного формату виходу (на ваш вибір) є чудовою. Однак я хотів би обмежити формат, як зазначено вище (який уже досить вільний). {1134,'pm'}наприклад, було б неприйнятно.


Які формати нам потрібні для підтримки? Тільки один?
redstarcoder

@redstarcoder Так. Будь-який формат, який відповідає вищепереліченим вимогам, нормальний, але, як зазначено вище на прикладах, вам не потрібно підтримувати кожен формат. Один формат введення та єдиний формат виводу - це добре.
Carcigenicate

чи дозволяють наші формати вимагати провідних нулів? Наприклад, 01:54pmпрацювало б, але 1:54pmчи ні?
FlipTack

Так. Ви можете вибрати необхідний формат введення.
Carcigenicate

Чи дозволяється нам включати секунди у свій вхід і вихід?
12Me21

Відповіді:


8

V , 21 17 байт

Дякую @DJMcMayhem за 4 байти!

í12:/0:
çp/12
$x

Спробуйте в Інтернеті! Це приймає формат, HH:MMxде xє aабо p, і повертає його у форматіHH:MM

Hexdump:

00000000: ed31 323a 2f30 3a0a e770 2f31 3201 2478  .12:/0:..p/12.$x
00000010: 0ae7 612f 2478                           ..a/$x

Пояснення:

í12:/0:   | find and replace 12: with 0: (to avoid replacing HH:12)
ç         | on every line
 p/       | that contains a p
   12^A   | increment 12 times (the first number, hours)
$x        | delete the character at the end of the line

Вхід завжди буде [1-12]правильним? У цьому випадку я думаю, що ви могли б зробити це ó^12/0замістьcw^R=^R"%12
DJMcMayhem

1
Крім того, ви можете використовувати "глобальну команду", щоб застосувати команду до рядків, що відповідають регулярному вираженню, що коротше, ніж розбиття макросу. çp/12^Aщо еквівалентно :g/p/norm 12<C-a>in vim
DJMcMayhem

Я прийняв це, тому що це найнижча відповідь, яка дала зрозуміти, що він не використовує вбудований (хоча я не забороняв їх використовувати). Якщо у когось є проблеми з цим вибором, я можу змінити свою відповідь на справедливу. Я думаю, що ця відповідь є найбільш заслуговою.
Carcigenicate


10

Октава, 21 17 байт

Збережено 4 байти завдяки Луїсу Мендо. Я міг би вказати формат № 15 замість 'HHMM'.

@(c)datestr(c,15)

Пояснення:

Це анонімна функція приймає рядок в cякості вхідних даних в форматі: '11:34 AM'. datestrрозпізнає формат автоматично як один із стандартних форматів дати та виводить його у вказаному форматі № 15, який є HH:MM.

Оскільки вказаний вихідний формат не має AMабо PMOctave автоматично перетворює його на те, що ви називаєте військовим часом.

Спробуйте в Інтернеті.


Версія, що не datestrвикористовує 35 байт

@(c)[c(1:4)+[1,2,0,0]*(c(5)>97),'']

Пояснення:

Займає рядок введення cу форматі 1134am.

@(c)                              % Anonymous function
[c(1:4)                           % First 4 elements of the string
       +[1,2,0,0]                 % Add 1 and 2 to the first to the ASCII-value of the 
                                    first two characters
                 *)c(5)>97)       % if the fifth element is larger than 97 
                                    (the ASCII code for `a`).
                            ,'']  % Implicitly convert to string

Або інший підхід для 37 байт:

@(c)[c(1:4)+('1200'-48)*(c(5)>97),'']

7

PowerShell , 23 20 19 байт

date "$args"-f HHmm

Спробуйте в Інтернеті!

(Якщо ви перебуваєте в Windows, ви можете опустити значення get-, щоб зменшитись до 19 байт. Для TIO, очевидно, потрібно повне Get-Dateім’я.)

Приймає введення як рядок $args[0], використовує це як вхід до Get-Dateкомандлету, який аналізує його на .NET- datetimeоб'єкт. Це передано з -fпараметром ormat HHmmдля перетворення його на військовий час (столиця HHвизначає 24-годинний час). Вихід неявний.

Роздільний механізм синтаксичного аналізу досить надійний, тому додаткові входи люблять 12amабо 12:00amдозволяються також. Пограйте за допомогою вводу про TIO і подивіться, що ще працює.

( Збережено 3 байти завдяки @admalledd ... збережено ще один байт завдяки @briantist )


Повинно бути в змозі видалити пробіл між $args[0]і -f, а також видалити окремі лапки навколо формату str : date $args[0]-f HHmm. Принаймні, це працює на моїх повноваженнях ...
admalledd

@admalledd Для того, щоб плакати вголос, я завжди забуваю ці цитати. Серйозно, я думаю , що кожен раз , коли я використовував Get-Dateз -f, хто - то нагадав мені , що вам не потрібні лапки. І хороший дзвінок з вилученням простору, оскільки аналізатор розглядає ]як кінець маркера. Спасибі!
AdmBorkBork

5

Python 2, 44 байти

lambda s:`int(s[:2])%12+12*("p"in s)`+s[3:5]

Формат введення:, 01:23amнеобов'язково mта пробіли після хвилин
Формат виводу:123


5

Pyth, 21 20 байт

Aczd++*12}\pH%sG12PH

Вводить форму 01 23aяк "01:23 ранку". Початковий 0 необов’язковий.
Вихід має форму 123, початковий 0 опущений.

У псевдокоді:

                         z = input()
A                        G, H =
 czd                         z.split(" ")       # splits into the form ["1","23p"]
                         (
     +*12}\pH            12*('p' in H) +        # add 12 if 'p' is in the string
             %sG12         int(G) % 12
    +             PH     ) + H[:-1]             # prepend hour to minutes, with a/p removed

Спробуйте в Інтернеті!


4

PHP, 35 32 байт

Формат введення: нечутливий до регістру, потрібен двокрапка та mвихідний формат hhmm. використовує вбудовані:

<?=date(Hi,strtotime($argv[1]));

приймає дані з аргументу першого командного рядка.

PHP, 45 байт, без вбудованих модулів

вхідний формат (h)h:mm a(m)малі, вихідний формат (h)hmm.

<?=($s=$argv[1])%12+12*($s[6]>a).$s[3].$s[4];

4
Чому потік?
Тит

Я просто спекулюю, але, можливо, це тому, що ви використовували PHP, а низохід не любить PHP? : p
bash0r

3

JavaScript (ES6), 40 байт

a=>(new Date('1/1/1/'+a)+a).slice(16,21)

Вхід має бути відформатований у такий спосіб: 12:32 am


3

GNU Coreutils ( 18 16 байт)

З сценарію оболонки:

Не приймає пробілів у вхідних даних

Після цього ви можете використовувати $ 1 і ігнорувати додаткові аргументи.

date -d$1 +%H%M

⇒ echo 'date -d$1 +%H%M' > time24
⇒ sh time24 1:45pm
1345
⇒ sh time24 1:45 pm
0145 # Wrong answer, “pm” ignored because of space

Оригінал

Щоб дозволити пробіл у вводі,

date -d"$@" +%H%M

3

C #, 46 байт

s=>System.DateTime.Parse(s).ToString("HH:mm");

Рядки приймаються на зразок введення 12:00 AM

Зробити те ж саме, але підрядка на виході з виклику за замовчуванням на ToString(Припускаючи культуру en-GB) на 3 байти довше на 49 байт:

s=>(System.DateTime.Parse(s)+"").Substring(11,5);

3

date, 0 + 8 = 8 байт

Що стосується використання правильного інструменту для роботи…

Вводить дані як аргумент командного рядка. Виконати з +%H%M -d(8 байт). Тут немає фактичної програми; вся робота виконується аргументами командного рядка. (Це досить гарна демонстрація того, чому за аргументи командного рядка передбачено штраф!)

Приклад:

$ date +%H%M -d "12:05 am"
0005

3

Java 7, 138 106 105 104 байт

String a(String a){return new java.text.SimpleDateFormat("Hmm").format(new java.util.Date("Ja1,0,"+a));}

Спробуйте в Інтернеті!

Вхід є двокрапкою та має проміжок між часом та am / pm. Вихід не обмежений двокрапкою.

-1 байт завдяки Kevin Cruijssen


Щонайменше, на Java це 20% коду.
Magic Octopus Urn

Правила говорять це « Для введення і виведення: -. 0s в першу чергу є необов'язковими 0s в останні 3 місця є обов'язковими. », Що означає , що ви можете змінити HHmmв Hmm.
Кевін Круїссен

@KevinCruijssen приємний улов!
Пукайте


2

Perl, 45 28 37 байт

28 37 байт

(c / o @Dada)

(36 байт коду, 1 байт для компілятора компілятора -p)

Приймає 0145pmвводити формати, з am / pm або a / p. Провідні нулі на входах необхідні.

s/(..)(.)$//;$_=$_%12+12*(p eq$2).$1

Тест:

⇒ echo 0145pm | perl -p time24
1345
⇒ echo 0245pm | perl -p time24
1445
⇒ echo 1245pm | perl -p time24
1245
⇒ echo 1245am | perl -p time24
045

Моя оригінальна відповідь

(також обережно переглянуто)

(39 байт коду, 1 байт для компілятора компілятора -p.)

Приймає лише таку форму, як 0145p або 0145a, і ніяку іншу, і потрібен perl -pрежим роботи.

s/(..)(..)([ap])/$1%12+12*($3eq"p").$2/e

тест:

⇒ echo 0145p | perl -p time24
1345
⇒ echo 1222a | perl -p time24
022
⇒ echo 1234p | perl -p time24
1234

Ласкаво просимо на PPCG. Приємна перша відповідь. Ви можете використовувати комутатори, але вони рахуються у вашому рахунку (як пояснено тут ). У вашому випадку це буде +1 байт (оскільки -pпотрібен лише ), якщо ви зміните єдині лапки на подвійні лапки.
Дада

Спасибі. Не вдалося знайти цього поширеного запитання, цікавіться, чи зможе команда Stack Exchange закріпити його на сторінці відповідей чи щось таке?
BRPocock

Гаразд, я перлінг з 4-х серій, і це болить мені голова, ви повинні взяти на себе кредит і опублікувати себе з цим. ☺
BRPocock

Я думаю, що це має охопити зараз?
BRPocock

Я помилився, це рішення не працюватиме, коли хвилини знаходяться між 0 і 9. Цей код працює тоді: s/(..)(.)$//;$_=$_%12+12*(p eq$2).$1(37 байт). І, до речі, ваше перше рішення можна трохи пограти в гольф: s/(..)(..)([ap])/$1%12+12*($3eq"p").$2/e(40 байт)
Дада

2

Commodore 64 BASIC, 301 байт перед запуском, 321 байт, використаний один раз

0 A$="12:34AM":A=VAL(LEFT$(A$,2)+MID$(A$,4,2)):ON-(RIGHT$(A$,2)="AM")+1GOSUB1,2:TI$=A$:PRINTTI$:END
1 ON-(A=>1200ANDA<=1259)GOTO3:A=A+1200:GOTO3
2 ON-(A=>1200ANDA<=1259)GOTO4:ON-(A<=959)GOTO7:RETURN
3 A$=RIGHT$(STR$(A)+"00",6):RETURN
4 A=A-1200:IFA=0THENA$="000000":RETURN
5 IFA<10THENA$="000"+RIGHT$(STR$(A),1)+"00":RETURN
6 A$="00"+RIGHT$(STR$(A),2)+"00":RETURN
7 A$="0"+RIGHT$(STR$(A),3)+"00":RETURN

Для того, щоб ввести це на справжньому Commodore 64, вам потрібно буде використовувати BASIC скорочення ключових слів, такі як LE [shift] F for LEFT$, M [shift] I for MID$etc. ... або ви можете спробувати CBM PRG STUDIO.

TI$Змінної в Commodore BASIC представляє час в 24 - годинному форматі , як HHMMSS при друку. Виділення місця після номера рядка не економить жодної пам’яті, оскільки Commodore BASIC все одно автоматично додає простір, коли ви перераховуєте програму після її введення.

Перетворюючи число в рядок за допомогою STR$, Commodore BASIC додасть у простір (тому, якщо ви PRINT Aпобачите пробіл до того, як число буде показане), я видалив простір відкриття номера з перетворення рядка за допомогою RIGHT$команди. Ви можете зберегти кілька байтів, змінивши нуль рядка на:

0 A=VAL(LEFT$(A$,2)+MID$(A$,4,2)):ON-(RIGHT$(A$,2)="AM")+1GOSUB1,2:TI$=A$:PRINTTI$:END

тому вам потрібно буде оголосити свій час на конвертацію перед запуском програми:

A$="01:22AM":GOTO 0

Після цього ви можете побачити поточний час за допомогою:

? TI$

Грати в гольф-коду на 8-бітних машинах дуже цікаво, оскільки показує, скільки зроблено для програміста сучасності, навіть не думаючи про це.
Shaun Bebbers

2

Java, 171 байт

enum t{;public static void main(String[] a){a=a[0].split("[: ]");System.out.format("%02d%02d",(Long.parseLong(a[0])+(a[2].charAt(0)=='p'?12:0))%24,Long.parseLong(a[1]));}}

Формат вводу є, HH:MM a/pа вихідний формат - HHMM. Зловживаючи тим, що основна функція має масив рядків, щоб розділити вхід на 3 секції: індикатор години, хвилини та а / р.

Приклад введення та виведення:

Input: 01:02 a
Output: 0102

Input: 01:02 p
Output: 13:02

Input: 12:22 p
Output: 0022

Безгольова версія:

enum t {
    ;

    public static void main(String[] a) {
        a = a[0].split("[: ]");
        System.out.format("%02d%02d", (Long.parseLong(a[0]) + (a[2].charAt(0) == 'p' ? 12 : 0)) % 24, Long.parseLong(a[1]));
    }
}

Я не бачив, як enumколись тримав main. Приємно :)
Роберт Бенсон

Ви можете пропустити пробіл у підписі основного методу: public static void main (String [] a) {...
staticmethod

2

REXX, 33 байти

arg h':'m a
say h+((a=pm)*12)':'m

Використання:

12:34 pm -> 24:34
1:34 pm -> 13:34
1:34 am -> 1:34
0:34 AM -> 0:34

Це може бути скорочене на кілька байт, якщо двокрапка як роздільник не буде використана.


Розмежувач товстої кишки необов’язковий.
Carcigenicate

Так, але це виглядає не так добре.
idrougge

З огляду на це завдання з гольфінгу на коді, якщо у вас є можливість більш тривалої програми з гарним результатом, або коротшої програми з більш потворним виходом, виберіть останню. Ніхто вас не буде судити.
Carcigenicate

2

C (стук) , 94 байти

h,m;f(){char a,b;scanf("%d:%d%c%c",&h,&m,&a,&b);printf("%02d%02d",a=='a'?(h%12):(12+h%12),m);}

Спробуйте в Інтернеті!

Я тут, щоб дізнатися, тому будь-які поради щодо того, як я можу оптимізувати код, вітаються.

@ Йохан дю Тойт Спасибі, що заощадив кілька байтів!


Вам не доведеться перевіряти, чи b == 'm', і ви можете зробити це набагато коротше, використовуючи inline, якщо заяви:printf("%02d:%02d", (a=='p' ? 12 : 0) + (h %12), m);
Йохан дю Тойт

1
@JohanduToit Що я ввожу 6: 00pc? :)
Абель Том

1
Це завдасть непоправної шкоди простору-часу.
Йохан дю Тойт


2

C, 87 72 байти

Збережено 15 байт завдяки @Johan du Toit

Виклик f()із змінним рядком як аргумент, вхід - вихід.

Формат HH:MMa/p, де a/pабо малі, aабо малі p. Між часом та покажчиком меридіана не допускається пробіл.

i;f(char*p){i=atoi(p)%12+(p[5]^97?12:0);*p=i/10+48;p[1]=i%10+48;p[5]=0;}

Спробуйте це на ideone .


ви можете зберегти пару байт, скориставшись наступним:i;f(char*p){i=atoi(p)%12+(p[5]^97?12:0);*p=i/10+48;p[1]=i%10+48;p[5]=0;}
Йохан дю Тойт

Запропонувати (p[5]!=97)*12;замість(p[5]^97?12:0);
roofcat


2

SmileBASIC, 67 байт

INPUT T$P=POP(T$)>"a
TMREAD"00:"+T$OUT,H,M?H MOD 12+12*P,T$[3];T$[4]

Вхід: HH:MMa/p

Вихід: HH MM


1

R, 68 байт

x=substr(strptime(scan(,""),"%I:%M %p"),12,16);`if`(x=="","00:00",x)

Читає дані зі stdin, і передбачається, що він знаходиться в одному з наступних форматів:

  • 12:00 AM
  • 12:00 am
  • 12:00AM
  • 12:00am

а вихідний формат: [1] "00:00"

У більшості випадків strptime()виведення відбувається у форматі: "2017-01-06 12:00:00 CET"де дата є локальною датою. Як такий, нам потрібно використовувати substr()лише повернення часу, однак, якщо вхід є опівночі (наприклад 12:00am), вихід є лише тим, "2017-01-06 CET"що є причиною цього ifв кінці (має бути ще якийсь розумний спосіб вирішення).


Мені дуже хотілося знайти коротший шлях lubridate, але назва пакету занадто довга (серед інших проблем).
BLT

1

C, 159 152 байт

#define C c[0]
main(i,c)char**c;{scanf("%s",C);i=atoi(C);if(C[5]-97){i+=i-12?12:0;sprintf(C,"%d",i);}else if(i==12)C[0]=C[1]=48;C[2]=58;C[5]=0;puts(C);}

Формат введення: 07:30am



1

Математика, 33 байти

#~DateString~{"Hour24","Minute"}&

Анонімна функція. Приймає рядок як вхідний і повертає рядок як вихідний. Працює з більшістю форматів, в тому числі hh:mm AM/PM.


1

JavaScript, 67 байт

f=s=>!~s.indexOf`pm`?s.slice(0,5):((+s.slice(0,2)+12)+s.slice(2,5))

Введення як у прикладі


Не працює для 12:00 amабо12:00 pm
Герман Л

1

Хаскелл, 61 персонаж

Коротка версія:

c[a,b,c,d,e]=(mod(read[a,b]::Int)12+f e,[c,d])
f 'a'=0
f _=12

Формат введення: HHMM(a/p)де (a/p)або "p", або "p" без дужок.

Формат виводу: (hs, MM)- кортеж, що містить години у вигляді цілого числа, а MM - як рядок.

Приклад:

> c "1200p"
(12,"00")
> c "1200a"
(0,"00")

Більш довга версія (з більш корисними іменами та однією заміною hs):

conv [h0,h1,m0,m1,ap] = (mod hs 12 + offset ap, [m0,m1])
    where hs = read [h0,h1] :: Int

offset 'a'=  0
offset  _ = 12

1

Лист звичайний ( 151 122 байт)

Гаразд, CL не мав на увазі "короткий", але я просто здивований, що це не найбільш багатослівний для цього.

Ось 122-байтна версія, яка потребує введення з фіксованою позицією. 0145pmабо 145pприйнятні (з провідним простором у першій позиції символу).

(defun a(x)(let((h(parse-integer(subseq x 0 2)))(m(subseq x 2 4)))(format nil "~a~a" (+(mod h 12)(if(find #\p x)12 0))m)))

PPRINT:

(DEFUN A (X)
  (LET ((H (PARSE-INTEGER (SUBSEQ X 0 2)))
        (M (SUBSEQ X 2 4)))
    (FORMAT NIL
            "~a~a"
            (+ (MOD H 12) (IF (FIND #\p X) 12 0))
            M)))

Приємніший, але більший

Використовуючи лише Common-Lispпакет. Приймає (лише) введення у вигляді цілих годин (з провідним або без 0), буквальним :, двоцифровим хвилинами та необов'язковим прорисом amабо pm(лише малі регістри). Дозволяє пробіл в часі та навколо AM / PM, але не безпосередньо після :.

(defun a(x)(let*((c(position #\: x))(h(parse-integer(subseq x 0 c)))(m(subseq x(1+ c)(+ 3 c))))(format nil "~a~a" (+(mod h 12)(if(find #\p x)12 0))m)))

Тест:

GOLF> (a "  1:45 am ")
"1:45"
GOLF> (a "  1:45 pm ")
"13:45"
GOLF> (a " 12:45 am ")
"0:45"
GOLF> (a "12:45p")
"12:45"

pprint визначення функції:

(DEFUN A (X)
  (LET* ((C (POSITION #\: X))
         (H (PARSE-INTEGER (SUBSEQ X 0 C)))
         (M (SUBSEQ X (1+ C) (+ 3 C))))
    (FORMAT NIL "~a~a"
            (+ (MOD H 12)
               (IF (FIND #\p X)
                   12
                   0))
            M)))

Знятое

(defun 12->24-hour (timestring) 
  "Given a  TIMESTRING with  hours:minutes and a  trailing “am”  or “pm”
   \(lowercase-only), return the 24-hour time without a delimiter as
   a  string \(eg,  \"1:45am\" →  \"0145\"). Spaces  surrounding the
   time or  meridian markers are ignored  \(eg, \" 02:22 pm  \") but
   other junk in the string may cause incorrect behavior."
  (let ((colon (position #\: timestring)))
    (let ((hours (parse-integer (subseq timestring 0 colon)))
          (minutes (subseq timestring (+ 1 colon) (+ 3 colon))))
      (format nil "~a~a"
              (+ (mod hours 12) (if (find #\p timestring) 12 0))
              minutes))))

1

Сітківка , 61 60 байт

^12(.*)a
00$1
^(12.*)p
$1
a

(\d\d)(.*)p
$1$*x12$*x$2
x+
$.&

Введення вводиться без відокремленої двокрапки, обов'язкове ведуче 0, використовуючи лише aабо pзамість, amабо pm, наприклад 0134a, 01:34. Виходи в прямий військовий час, використовуючи 0000 як опівночі. (Я міг би зберегти кілька байт, якщо мені дозволять конвертувати, наприклад, 12:30 ранку 2430, але я сумніваюся, що це прийнятно).

Спробуйте в Інтернеті!

Пояснення

Початкові два справи стосуються "12" годин, оскільки am / pm змінюється на 12:

^12(.*)a
00$1

Якщо час знаходиться між півночі (12 ранку) та 1 годиною ранку, змініть його на 00 замість 12 та вийміть a.

^(12.*)p
$1

Якщо час знаходиться між полуднем (12 вечора) та 1 вечором, видаліть p, щоб просто отримати 24 години.

Для будь-якої іншої години:

a
 

Якщо час є, просто зніміть його, aщоб отримати 24 години.

(\d\d)(.*)p
$1$*x12$*x$2
x+
$.&

Якщо час вечора, видаліть p. Перетворіть годинний компонент в одинаковий, додайте 12 і перетворіть назад у десятковий. Залиште хвилини без змін.


1

Пакет, 40 байт

@set/aa=0,p=12,h=%1%%12+%3
@echo %h% %2

Вважає три аргументи. Припускає, що другий аргумент має нульовий результат, де це необхідно, третій аргумент - aабо p. Працює, розглядаючи третій аргумент як ім’я непрямої змінної, тому додаючи його до кількості годин; кількість хвилин не впливає, тому просто виводиться безпосередньо. Якщо змішування різних форматів у порядку, останнє пробіл можна видалити, щоб зберегти байт.

(Швидше прикро, це питання не з’являлося на сторінці питань, коли я його завантажував спочатку, і я лише натикався на нього, тому що шукав інше питання.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.