24 ঘন্টা সময় যোগফল


21

0 এবং 141 (অন্তর্ভুক্ত) এর মধ্যে একটি পূর্ণসংখ্যা দেওয়া হয়েছে, সমস্ত 24 ঘন্টা সময় তালিকাভুক্ত করুন যার ঘন্টা, মিনিট এবং দ্বিতীয় ইউনিটগুলি পূর্ণসংখ্যায় যুক্ত করে।

সংযোজন বিধি

নম্বরগুলি তাদের একক দ্বারা নয়, একক সংখ্যা দ্বারা যুক্ত হয়।

উদাহরণস্বরূপ, 17:43:59 নিন

17 + 43 + 59 = 119

মনে রাখবেন, এটি সংখ্যার যোগ করার উদাহরণ বাস্তবে, আপনি 119 লিখবেন এবং 17:43:59 ফলাফলগুলির মধ্যে একটি হবে। আউটপুট এইচএইচ: এমএম: এসএস বা এইচ: এমএম: এসএস হিসাবে দেওয়া উচিত।

23:59:59 হ'ল সর্বোচ্চ সংখ্যাটি 141 মনে রাখবেন। এটি কোড গল্ফ, তাই সর্বনিম্ন পরিমাণে জয়ী হয়। ট্রায়াল এবং ত্রুটি অনুমোদিত, তবে এটির আরও ভাল উপায় হতে পারে।

সম্পাদনা: দয়া করে আপনার কোডটিতে ইনপুট মানটি নির্দিষ্ট করুন।


3
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! যদি প্লাগ ইন করে আপনার অর্থ উত্স কোডের কিছু অংশ তৈরি করা হয় তবে এটিকে সাধারণত অনুমোদিত নয়। সাধারণভাবে, এই ডিফল্টগুলিতে লেগে থাকা ভাল ধারণা। আমাদের কি ফলাফলগুলি স্ট্রিং হিসাবে প্রদর্শন করতে হবে? যদি তা হয় তবে কোন ফর্ম্যাটের অনুমতি রয়েছে?
ডেনিস

ইনপুট নম্বরটি কী ইতিবাচক হওয়ার নিশ্চয়তা দিয়েছে? কমপক্ষে একটি সমাধান হবে?
এক্সনোর

আমি কিছু বিষয় পরিষ্কার / উত্তর দিতে প্রশ্নটি কিছুটা সম্পাদনা করেছি। যদি আপনার উদ্দেশ্যগুলি আমার পরিবর্তনের চেয়ে আলাদা ছিল তবে এটির সাথে মেলে এটি নির্দ্বিধায় জানুন।
জিওবিটস

1
আমি কেবল এটিই করলাম কারণ সময়টি আমি দেখি world কেউ কখনও এটি বলে না যে এটি 13: 4: 7, কিন্তু 5:10:30 প্রায় সর্বদা গ্রহণযোগ্য। এটি পরিবর্তন হওয়ার সাথে আমার কোনও সমস্যা নেই।
জিওবিটস

3
"দয়া করে আপনার কোডটিতে ইনপুট মানটি নির্দিষ্ট করুন" " - ইনপুট নেওয়ার জন্য পিপিসিজিতে কনভেনশনটি যুক্তিগুলি পাশাপাশি আরও কয়েকটি বিকল্প ব্যবহার করছে। কোড গল্ফের জন্য ডিফল্ট দেখুন : মেটাতে ইনপুট / আউটপুট পদ্ধতি
ব্যবহারকারী 2428118

উত্তর:


8

জেলি , 16 30 29 20 বাইট

এখন সঠিক আউটপুট ফর্ম্যাট সহ! এই উত্তরটি ডিবাগ করার ক্ষেত্রে ডেনিসকে সাহায্য করার জন্য অনেক ধন্যবাদ। গল্ফিং পরামর্শ স্বাগত জানাই। এটি অনলাইন চেষ্টা করুন!

সম্পাদনা করুন: সঠিক আউটপুট ফর্ম্যাটটি ব্যবহার করে +14 বাইট। অতিরিক্ত স্থান অপসারণ থেকে -1 বাইট। -3 থেকে পরিবর্তন করা থেকে 24,60,60থেকে “ð<<‘। -6 পরিবর্তন করা থেকে বাইট +100DḊ€€থেকে d⁵

“ð<<‘Œp’S=¥Ðfd⁵j€”:Y

ব্যাখ্যা

“ð<<‘Œp’S=¥Ðfd⁵j€”:Y  Main link. Argument: n

“ð<<‘                 Jelly ord() the string `ð<<` to get [24, 60, 60]. Call this list z.
     Œp               Cartesian product of z's items. 
                        Since each item of z is a literal,
                        Jelly takes the range [1 ... item] for each item.
       ’              Decrements every number in the Cartesian product 
                        to get lowered ranges [0 ... item-1].
        S=¥           Create a dyadic link of `sum is equal to (implicit n)`.
           Ðf         Filter the Cartesian product for items with sum equal to n.
             d⁵       By taking divmod 10 of every number in each item,
                        we get zero padding for single-digit numbers
                        and every double-digit number just turns into a list of its digits.
               j€”:   Join every number with a ':'.
                   Y  Join all of the times with linefeeds for easier reading.

8

বাশ, 71

  • 8 বাইট সংরক্ষণ করেছে @hvd ধন্যবাদ
for t in {0..23}+{00..59}+{00..59};{((${t//+0/+}-$1))||echo ${t//+/:};}

এটি অনলাইনে চেষ্টা করুন


1
printfএখানে ব্যয়বহুল। বুঝিয়ে tঅধিকার বিন্যাস কাছাকাছি, এবং এটিকে আপ ফিক্সিং ((t-$1)): কাজ আপনি ওটাকে 71 পেতে পারেনfor t in {0..23}+{00..59}+{00..59};{((${t//+0/+}-$1))||echo ${t//+/:};}
hvd

@ hvd ভাল গল্ফিং - ধন্যবাদ!
ডিজিটাল ট্রমা

6

পার্ল 6 , 62 56 বাইট

{map *.fmt('%02d',':'),grep $_==*.sum,(^24 X ^60 X ^60)}

সমস্ত ঘন্টা, মিনিট এবং সেকেন্ডের ক্রস প্রোডাক্টটিতে কেবল সমস্ত সম্ভাব্য সংমিশ্রণগুলি পরীক্ষা করে দেখুন।


4

পাইথন 3 , 91 বাইট

def f(n):
 for k in range(86400):t=k//3600,k//60%60,k%60;sum(t)==n!=print('%d:%02d:%02d'%t)

exec(পাইথন 2) বা পুনরাবৃত্তি (পাইথন 3) ব্যবহার করে সংক্ষিপ্ত সমাধান রয়েছে তবে উভয়ের জন্য অযৌক্তিক পরিমাণ মেমরির প্রয়োজন।

এটি অনলাইন চেষ্টা করুন!


4

পাওয়ারশেল , 87 77 বাইট

জন এল বেভানকে 10 বাইট সংরক্ষণ করে

$d=date;0..86399|%{$d+=1e7l;"$d".Split()[1]}|?{("{0:H+m+s}"-f$d|iex)-in$args}

এটি অনলাইন চেষ্টা করুন! (এটি শেষ হয়ে যাবে, এটি খুব ধীর)

ব্যাখ্যা

খুব সহজ, বর্তমানের সাথে শুরু করে [datetime], 1 সেকেন্ড 86,399 বার যুক্ত করুন, স্ট্রিং হিসাবে ফর্ম্যাট করুন, তারপরে যোগফলগুলি কেবল যোগ করুন।


অবগতির জন্য: আপনি প্রতিস্থাপন করতে পারেন 10000000সঙ্গে 1e7lসংরক্ষণ 4 বাইট ... বা এমনকি 1e7একটি অতিরিক্ত বাইট জন্য (আমি মনে করি আমি অন্তর্ভুক্ত করা ছিল Lপ্যারামিটার সুবিধার জন্য কিন্তু সন্দেহ হয় যে আপনার পদ্ধতির এড়াতে যে প্রয়োজন নেই।
JohnLBevan

1
@ জন এলবিভান ধন্যবাদ! আমি 1e7কমপক্ষে 30 মিনিটের জন্য লড়াই করেছি এবং এটি Lআমার অনুপস্থিত পোস্টফিক্স; আমি এটি সম্পর্কে ভুলে গিয়েছি এবং ধ্রুবকের চেয়ে সংক্ষিপ্ততর এটির কাছে পৌঁছানোর কোনও উপায় বের করতে পারি না। কে সিদ্ধান্ত নিয়েছে যে কোনও [timespan]অনুবাদককে [int]টিকটিক এবং একটি দিন[double] হিসাবে যেভাবেই ব্যাখ্যা করা হয় ?? বিট প্রশংসনীয় মেধাবী, যদিও এটা এই গোটা ব্যাপারটাই নিপীড়িত ধীরে হয়ে যায়। iex
ব্রিটিশবাদী

1
কোন চিন্তা করো না; :); আমি যে এক কিছু সাহায্য খুব ছিল stackoverflow.com/q/41408902/361842
JohnLBevan

1
@JohnLBevan আমি আক্ষরিক শুধু যেখানে আপনি এটি লিঙ্ক মন্তব্য আগে এই প্রশ্নের দেখেছি! খুশী হলাম।
ব্রিটিশবাদী

1
এছাড়াও iex: কৌতুক এখানে একটি ডগা থেকে অভিযোজিত হয়েছিল codegolf.stackexchange.com/a/746/6776
JohnLBevan

3

হাস্কেল, 77 বাইট

f x=[tail$(':':).tail.show.(+100)=<<t|t<-mapM(\x->[0..x])[23,59,59],sum t==x]

2

হাস্কেল, 90 বাইট

p x=['0'|x<10]++show x
i=[0..59]
f x=[p h++':':p m++':':p s|h<-[0..23],m<-i,s<-i,h+m+s==x]

এইচ এইচ: এমএম: এসএস স্ট্রিং, যেমন f 140-> - এর একটি তালিকা ফেরত দেয় ["22:59:59","23:58:59","23:59:58"]

এটি ঘন্টা, মিনিট এবং সেকেন্ডের মধ্যে তিনটি সহজ লুপ। সমস্ত মান রাখুন এবং ফর্ম্যাট করুন যেখানে যোগফলটি ইনপুট নম্বর x




2

ব্যাচ, 168 বাইট

@for /l %%t in (0,1,86399)do @call:c %1 %%t
@exit/b
:c
@set/ah=%2/3600,m=%2/60%%60,s=%2%%60,n=%1-h-m-s
@set m=0%m%
@set s=0%s%
@if %n%==0 echo %h%:%m:~-2%:%s:~-2%

আউটপুট একক অঙ্কের ঘন্টা।


2

গণিত, 79 বাইট

Cases[Tuples@{(r=Range)@24-1,x=r@60-1,x},t_/;Tr@t==#:>DateString@TimeObject@t]&


1

QBIC , 82 72 বাইট

:[0,23|[0,59|[0,59|~b+c+d=a|?!b$+@:`+right$(@0`+!c$,2)+A+right$(B+!d$,2)

এটি QBasic এর একটি দুর্ভাগ্যজনক স্থান হিট, সংখ্যায় কাস্টিং সহ, ছাঁটাছুটি করা এবং 0যখন প্রয়োজন হয় তখন সত্যিই ব্যয়বহুল ending

নমুনা আউটপুট:

Command line: 119
1:59:59
2:58:59
2:59:58
3:57:59
[... SNIP 270 lines ...]
23:58:38
23:59:37

ব্যাখ্যা আমি এটি সম্পর্কে একটি উপন্যাস লিখেছি:

:           Get N, call it 'a'
[0,23|      Loop through the hours; this FOR loop is initialised with 2 parameters
            using a comma to separate FROM and TO, and a '|' to delimit the argument list
[0,59|      Same for the minutes
[0,59|      And the seconds
            QBIC automatically creates variables to use as loop-counters: 
            b, c, d (a was already taken by ':')
~b+c+d=a    IF a == b+c+d
|           THEN
 ?          PRINT
  !         CAST
   b        'b'
    $       To String; casting num to str in QBasic adds a space, this is trimmed in QBIC
+@:`        Create string A$, containing ":"
+right$      This is a QBasic function, but since it's all lowercase (and '$' is 
            not a function in QBIC) it remains unaltered in the resulting QBasic.
(@0`+!c$,2) Pad the minutes by prepending a 0, then taking the rightmost 2 characters.
+A          Remember that semicolon in A$? Add it again
+right$     Same for the seconds
(B+!d$,2)   Reusing the 0-string saves 2 bytes :-)

কিউবিআইসি আকর্ষণীয় দেখায়। আপনি কি এটি # কোড-গল্ফের জন্য তৈরি করেছেন !? :)
wasatchwizard

@ওয়াসাচউইজার্ড ইয়ুপ :-)
স্টেনবার্গ

1

পাওয়ারশেল , 67 79 বাইট (বাজে সংস্করণ)

যেহেতু বিধিগুলি নির্দিষ্ট সময়ে (বা মোটেও) সম্পূর্ণ করার বিষয়ে কিছুই বলে না, এবং কোনও নকল সম্পর্কে কিছুই না, তাই এখানে একটি ভয়াবহ সমাধান রয়েছে:

for(){if(("{0:H+m+s}"-f($d=date)|iex)-in$args){"{0:H:mm:ss}"-f$d}}

1
আমি প্রাসঙ্গিক মেটা পোস্টটি খুঁজে পাচ্ছি না, তবে আমি নিশ্চিত যে চ্যালেঞ্জ দ্বারা সুনির্দিষ্ট না করা থাকলে
সাবমিশনটি

ধন্যবাদ @ শেফাকে ... যদি এমনটি হয় তবে আমি আমার বাজে সংস্করণটি ব্রায়েন্টিস্টের পরিষ্কার সংস্করণের চেয়ে কম চরিত্রে কাজ করার উপায় খুঁজে পাচ্ছি না ... এই উত্তরটি মুছে ফেলার জন্য প্রলুব্ধ, তবে আমি কীভাবে গর্বিত তা জানাতে চাই খারাপ এটি;)
LBevan

0

রেকেট 39 বাইট

(for*/sum((h 24)(m 60)(s 60))(+ h m s))

Ungolfed:

(for*/sum      ; loop for all combinations; return sum of values for each loop
   ((h 24)     ; h from 0 to 23
    (m 60)     ; m from 0 to 59
    (s 60))    ; s from 0 to 59
  (+ h m s))   ; sum of all 3 variables

0

এমএটিএল , 29 বাইট

24:q60:qt&Z*t!si=Y)'%i:'8:)&V

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

24:q     % Push [0 1 ... 23]
60:q     % Push [0 1 ... 59]
t        % Duplicate
&Z*      % Cartesian product of the three arrays. This gives a matrix with each
         % on a different row Cartesian tuple
t!       % Push a transposed copy
s        % Sum of each column
i=       % Logical mask of values that equal the input
Y)       % Select rows based on that mask
'%i:'    % Push this string
8:)      % Index (modularly) with [1 2 ... 8]: gives string '%i:%i:%i'
&V       % Convert to string with that format specification. Implicitly display

0

জাভাস্ক্রিপ্ট, 122 120 বাইট

ইনপুট হিসাবে একটি অতিরিক্ত খালি স্ট্রিং নেয়, যা আমি অনুমান করি তা আকারের দিকে গণনা করে নাস্ট্রিংয়ের শুরুতে দুটি বাইট যুক্ত করতে বাইটকাউন্ট (historicalতিহাসিক সহ) আপডেট হয়েছে।

console.log((
//Submission starts at the next line
i=>o=>{for(h=24;h--;)for(m=60;m--;)for(s=60;s--;)if(h+m+s==i)o+=`${h}:0${m}:0${s} `;return o.replace(/0\d{2}/g,d=>+d)}
//End submission
)(prompt("Number:",""))(""))


আপনি যদি খালি খালি স্ট্রিং শুরু করতে চান তবে
আরম্ভটি

@ edc65 সম্পন্ন হয়েছে ···
user

0

জাভাস্ক্রিপ্ট (ES6), 110

v=>eval("o=[];z=x=>':'+`0${x}`.slice(-2);for(m=60;m--;)for(s=60;s--;h>=0&h<24&&o.push(h+z(m)+z(s)))h=v-m-s;o")

কম গল্ফড

v=>{
  o=[];
  z=x=>':' + `0${x}`.slice(-2);
  for(m = 60; m--;)
    for(s = 60; s--; )
      h = v - m - s,
      h >= 0 & h < 24 && o.push(h + z(m) + z(s))
  return o
}

পরীক্ষা

F=
v=>eval("o=[];z=x=>':'+`0${x}`.slice(-2);for(m=60;m--;)for(s=60;s--;h>=0&h<24&&o.push(h+z(m)+z(s)))h=v-m-s;o")

function update() {
  O.textContent=F(+I.value).join`\n`
}

update()
<input id='I' value=119 type=number min=0 max=141 oninput='update()'><pre id=O></pre>


0

জাভাস্ক্রিপ্ট, 96 বাইট

v=>{for (i=86399;i;[a,b,c]=[i/3600|0,i%3600/60|0,i--%60]){v-a-b-c?0:console.log(a+":"+b+":"+c)}}

সম্প্রসারিত দর্শন:

v => {
    for (i = 86399; i;
        [a, b, c] = [i / 3600 | 0, i % 3600 / 60 | 0, i-- % 60]) {
        v - a - b - c ? 0 : console.log(a + ":" + b + ":" + c)
    }
}

86399 থেকে 1 এ লুপ করে সমস্ত সম্ভাব্য সময়ে লুপ করুন

  • প্রথম সংখ্যাটি পেতে 3600 দিয়ে ভাগ করে পূর্ণসংখ্যাকে সময়ের সাথে রূপান্তর করুন
  • পূর্ণসংখ্যার মোড 3600 নিয়ে দ্বিতীয় সংখ্যাটি এবং তারপরে 60 দিয়ে ভাগ করে
  • এবং শেষ সংখ্যাটি হল পূর্ণসংখ্যা মোড 60

ইনপুট মান থেকে তিনটি সংখ্যা যোগ করা হলে একটি মিথ্যা মান ফেরত দিতে ইনপুট মান থেকে সমস্ত 3 নম্বর বিয়োগ করুন। মানটি মিথ্যা হলে মানটিকে আউটপুট করুন।


0

বাশ, by 78 বাইট (একটি BSD ইউটিলিটি ব্যবহার করে) বা by৯ বাইট (বিএসডি বিহীন)

এটি @ ডিজিটালট্রামা এবং @ এইচডিডি-র দুর্দান্ত -১-বাইট বাশ সমাধানের চেয়ে কিছুটা দীর্ঘ, তবে আমি এখানে বেস 60০ তে সংখ্যা ব্যবহার করার ধারণাটি পছন্দ করেছি; আমি আগ্রহী যদি কেউ এটিকে আরও কিছুটা গল্ফ করতে পারে।

বিএসডি-স্ট্যান্ডার্ড জট ইউটিলিটি সহ:

jot '-wx=`dc<<<60do3^%d+n`;((`dc<<<$x++'$1'-n`))||tr \  :<<<${x:3}' 86400 0|sh

আরও সর্বজনীনভাবে উপলব্ধ seq ইউটিলিটি সহ:

seq '-fx=`dc<<<60do3^%.f+n`;((`dc<<<$x++'$1'-n`))||tr \  :<<<${x:3}' 0 86399|sh

ধারণাটি 0 থেকে 83699 পর্যন্ত সংখ্যা উত্পন্ন করা এবং ডিসি ব্যবহার করে তাদের 60 কে বেস 60 এ রূপান্তর করতে হবে। ডিসির বেস -60 আউটপুটে "অঙ্কগুলি" 2-সংখ্যার নম্বর থেকে শুরু করে 59 হয়, স্পেসগুলি "অঙ্কগুলি" পৃথক করে, তাই এটি প্রায় প্রয়োজনীয় বিন্যাসে 00 00 00 থেকে 23 59 59 পর্যন্ত সমস্ত কাঙ্ক্ষিত সময়গুলি তালিকাভুক্ত করে।

আপনি যদি আক্ষরিকভাবে এটি চালিয়ে যান, তবে, 60 below 2 এর নীচের সংখ্যাগুলি 60 বেসে 3-অঙ্কের সংখ্যা নয়, তাই প্রাথমিক 00 বা 00 00 অনুপস্থিত। যে কারণে, আমি আসলে 60 ^ 3 থেকে 60 ^ 3 + 83699 থেকে সংখ্যাগুলি তৈরি করছি; এটি নিশ্চিত করে যে উত্পন্ন সমস্ত সংখ্যার ভিত্তি 60 তে হ'ল 4 অঙ্কের দীর্ঘ eventually এটি অবধি ঠিক আছে যতক্ষণ না শেষ পর্যন্ত আমি অতিরিক্ত প্রথম সংখ্যা (01) ফেলে রাখি যা প্রয়োজন নেই।

সুতরাং, একবারে কাঙ্ক্ষিত সময়গুলি উত্পন্ন হওয়ার পরে, আমি কেবল প্রতিটি ডাব্লু 010 00 00 থেকে 01 23 59 59 এর মধ্যে নিয়েছি, শেষ তিনটি সংখ্যা যুক্ত করব এবং যুক্তিটি $ 1 কে বিয়োগ করুন। যদি এটি 0 হয় তবে আমি তৃতীয় অক্ষর থেকে চতুর্ভুজের সমস্ত কিছু ("01" দূরে ছুঁড়ে ফেলেছি) থেকে নিয়ে যাচ্ছি, স্পেসগুলিকে কোলনে রূপান্তর করতে, এবং ফলাফলটি মুদ্রণ করতে পারি।


0

পাওয়ারশেল , 91 97 বাইট (ইনপুট সহ)

param($x)1..864e3|%{($d=date($_*1e7l))}|?{("{0:H+m+s}"-f$_|iex)-eq$x}|%{"{0:H:mm:ss}"-f$_}

param($x)0..23|%{$h=$_;0..59|%{$m=$_;0..59|?{$h+$m+$_-eq$x}|%{"{0:0}:{1:00}:{2:00}"-f$h,$m,$_}}}

অথবা

param($x)0..23|%{$h=$_;0..59|?{($s=$x-$h-$_)-le59-and$s-ge0}|%{"{0:0}:{1:00}:{2:00}"-f$h,$_,$s}} <\ গুলি>

প্রসারিত এবং মন্তব্য করা হয়েছে

param($x)
#loop through the hours
0..23 | %{
    $h=$_
    #loop through the minutes
    0..59 | %{
        $m=$_
        #loop through the seconds
        0..59 | ?{ #filter for those where the sum matches the target
            $h + $m + $_ -eq $x
        } | %{
            #format the result
            "{0:#0}:{1:00}:{2:00}" -f $h, $m, $_
        }
    }
}

এনবি: @ ব্রায়ান্টিস্টের সংস্করণটি ছাড়িয়ে গেছে: /codegolf//a/105163/6776

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.