আমার মাইক্রোওয়েভ কতক্ষণ চলতে হবে?


33

আমি ক্ষুধার্ত. কিছু মাইক্রোওয়েভ করা যাক। 1 থেকে 4 ডিজিটের মধ্যে একটি সংখ্যাসূচক ইনপুট দেওয়া হয়েছে, মাইক্রোওয়েভটি যে সেকেন্ডে চালিত হবে সেটিকে আউটপুট দিন।

বিস্তারিত

ব্যবহারকারীটি সেকেন্ড বা সেকেন্ড এবং মিনিটের সংমিশ্রণটি ইনপুট করছে কিনা তা কৌশলটি নির্ধারণ করছে। এগুলি এবং দশগুলির স্থানগুলি সেকেন্ড হিসাবে ব্যাখ্যা করা উচিত এবং কয়েকশ এবং কয়েক হাজার স্থান কয়েক মিনিট হওয়া উচিত। উদাহরণস্বরূপ, মানটি 123412 মিনিট, 34 সেকেন্ড হিসাবে ব্যাখ্যা করা 9876উচিত এবং 98 মিনিট, 76 সেকেন্ড হওয়া উচিত। টাইপিং 130এবং 90উভয়ই 90 সেকেন্ডের রান্নার সময় হওয়া উচিত।

এখানে আরও কয়েকটি ইনপুট এবং আউটপুট রয়েছে:

  • 1 = 1
  • 11 = 11
  • 111 = 71
  • 1111 = 671
  • 9 = 9
  • 99 = 99
  • 999 = 639
  • 9999 = 6039

বিধি

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি জিতে। স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়। বিজয়ী এন্ট্রিটি 1 থেকে 9999 পর্যন্ত কোনও পূর্ণসংখ্যার ইনপুট দেওয়ার সময় অবশ্যই সঠিক উত্তরটি ফেরত দিতে হবে।


@ হিট উইজার্ড, আমি প্রশ্নটি সম্পাদনা করে খুশি। বিশদ বিভাগে আমার কী বলার জন্য আপনার কাছে কোনও পরামর্শ আছে? সম্ভবত আমি এই বাক্যটিকে আরও স্পষ্ট করে বলতে পারি: "স্থানগুলি এবং দশকের স্থানগুলি সেকেন্ড হিসাবে ব্যাখ্যা করা উচিত এবং কয়েকশ এবং হাজারে স্থানের মিনিট হওয়া উচিত" "
অ্যান্ড্রু ব্রাজা

@ ওয়েট উইজার্ড আমি কেবল আরও বিশদ যুক্ত করেছি, আপনার যদি মনে হয় আমার আরও যুক্ত করা উচিত তবে আমাকে জানান।
অ্যান্ড্রু ব্রাজা

এটি একটি ইনপুট দিয়ে কাজ করে 9876?
অ্যান্ড্রু ব্রাজা


আউটপুট কি জন্য হবে 190?
ওল্ডবুনি 2800

উত্তর:



9

জাপট , 6 বাইট

ìL ì60

এটি অনলাইন পরীক্ষা! ìLবেস -100 এ ì60রূপান্তর করে এবং 60 টি বেসে ফিরে যায়, যার ফলস্বরূপ floor(n/100)*60 + n%100। এছাড়াও ঘন্টা সহ কাজ করে ( 10000 -> 3600, এক ঘন্টার মধ্যে সেকেন্ডের সংখ্যা)।


1
ঠিক আমার কাছে যা ছিল :)
শেগি

7

সি, সি ++, জাভা, সি #, ডি: 36 বাইট

ডি: 35 বাইট

সি: 28 বাইট

প্রথমবার আমার এই উত্তরটি সংক্ষিপ্ত!

int r(int i){return i/100*60+i%100;}

গল্ফ টেম্পলেট সিস্টেমের কারণে ডি একটি বিশেষ অপ্টিমাইজেশন পেতে পারেন:

T r(T)(T i){return i/100*60+i%100;}

অন্তর্নিহিত ইন্টের সাথে সি এর একটি বিশেষ অপ্টিমাইজেশন রয়েছে:

r(i){return i/100*60+i%100;}

কোড পরীক্ষা করার জন্য

ইন সি (অন্তর্ভুক্ত করা আছে stdio.h):

int main() {
    int testArr[] = {1,11,111,1111,9,99,999,9999};
    for(int i=0;i<8; ++i) {
        printf("%d = %d\n",testArr[i],r(testArr[i]));
    }
    return 0;
}

টিআইও লিঙ্ক

ইন সি ++ (অন্তর্ভুক্ত করা আছে iostream):

int main() {
    std::initializer_list<int> testList{
        1,11,111,1111,9,99,999,9999
    };

    for (auto x : testList) {
        std::cout << r(x) << '\n';
    }
}

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

ইন জাভা :

public class MainApp {

    int r(int i){return i/100*60+i%100;}

    public static void main(String[]a) {
        MainApp m = new MainApp();
        int testArr[] = new int[]{
                1,11,111,1111,9,99,999,9999
        };

        for (int v : testArr) {
            System.out.println(v + " = " + m.r(v));
        }
    }
}

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

ইন সি #

class Program {
    int r(int i){return i/100*60+i%100;}
    static void Main(string[] args) {
        var p = new Program();
        int[] testArr = new int[8]
        {
            1,11,111,1111,9,99,999,9999
        };
        foreach(int a in testArr) {
            Console.WriteLine(a + " = " + p.r(a));
        }
    }
}

ইন ডি (আমদানি করতে হবে std.stdio) (ঠিক, আমি কোন ধারণা কিভাবে D এর অ্যারে ব্যবহার করতে হবে):

void main() {
    int[] arr = [1,11,111,1111,9,9,999,9999];
    for(int i = 0; i < arr.length; i++)
        writeln(arr[i]," = ",r(arr[i]));
} 

টিআইও লিঙ্ক


ডি পরীক্ষার কোডটি এই টিআইওর পাদচরণ হতে হবে: টিআইওর tio.run/… , এবং আমি দেখতে পাচ্ছি যে আপনি টেমপ্লেট সিস্টেমটি শিখেছেন :)। ( foreachডি তে একটি আছে, আমি কীভাবে দুঃখের সাথে এটি ব্যবহার করব তা ভুলে গেছি)
জাকারি

সি 89 ইনফিকেট-ইন্ট ব্যবহার করে 28 বাইটে গল্ফ করা যায় ।
pizzapants184

আপনার এই পৃথক উত্তর হিসাবে পোস্ট করা উচিত।
এমডি এক্সএফ

6

পাইথ - 9 8 বাইট

ইনপুটটিকে বেস 100 এ রূপান্তর করে, তারপরে এটি একটি বেস 60 সংখ্যা হিসাবে ব্যাখ্যা করে।

ijQ*TT60

টেস্ট স্যুট


6

টিআই-বেসিক (83 সিরিজ), 8 বাইট

Ans-40int(sub(Ans

ওএস সংস্করণ 1.15 বা ততোধিক প্রয়োজন।


6

ডিসি , 10 বাইট

?9A~r60*+p

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

ব্যাখ্যা: ডিসি যখন আপনি sth চাপুন। স্ট্যাকের উপরে এটি উপরে যায়

?         # read and push the input number on the stack
9A        # push 100: 9 * 10^1 + A[10] * 10^0 :D
~         # divide 2nd nr. by the top nr., push quotient, then remainder
r60*      # swap top 2 nr., then multiply the top by 60
+p        # add top 2 nr., then print result

5

বাশ বিসি + সেড, 30 28 বাইট

-2 বাইটস @ সেশৌমারা ধন্যবাদ জানায়

bc<<<0`sed 's/..\?$/*60+&/'`

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

স্টিডিন থেকে ইনপুট নেয়। আরও সৃজনশীল পদ্ধতির জন্য গিয়েছিলেন: *60+শেষ 1 বা 2 ডিজিটের আগে সন্নিবেশ 0করে এবং কেবল 1 বা 2 সংখ্যার ইনপুটগুলির জন্য অ্যাকাউন্টে শুরুর দিকে প্রেন্ডস করে । এরপরে ফলাফলটি পাস করা হয় bc


1
যদি আপনি অপসারণ -rএবং ব্যবহার করেন \?, আপনি 2 বাইট শিথিল করতে পারেন।
শৈশুমারা

3



2

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

a=>(a/100^0)*60+a%100

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


Ovs এর ট্রিক ব্যবহার করে 4 বাইট সংরক্ষণ করুন - a- (a / 100 ^ 0) * 40
IanF1

1
@ IanF1। ধন্যবাদ, তবে আমি মনে করি এটি আক্ষরিকভাবে তাদের ধারণাটি চুরি করবে।

হ্যাঁ তুমি সঠিক. খুব উত্সাহী, দুঃখিত।
আইয়ানএফ 1

3
@ThePirateBay আপনি তখন নিজের নামের সাথে সত্যই বাঁচেন না;)
kamoroso94

2

জে , 12 বাইট

-40*&<.%&100

এটি ওভসের পাইথন 2 সমাধানটি জেতে প্রকাশ করেছে It এটিতে একটি হুক এবং কাঁটাচামচ থাকে:

┌─┬───────────────────────┐
│-│┌──┬────────┬─────────┐│
│ ││40│┌─┬─┬──┐│┌─┬─┬───┐││
│ ││  ││*│&│<.│││%│&│100│││
│ ││  │└─┴─┴──┘│└─┴─┴───┘││
│ │└──┴────────┴─────────┘│
└─┴───────────────────────┘

       %&100  - divides the number by 100
   *&<.       - finds the floor of the left argument and multiplies it to the left arg.
 40           - 
-             - subtracts the result of the above fork from the input 

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


1
হিসাবে একই বাইট গণনা 60#.0 100#:]
ফ্রাউনফ্রোগ

@ ফ্রাউনফ্রোগ - আপনার সমাধানটি সুন্দর দেখায়, চিয়ার্স!
গ্যালেন ইভানভ



2

ল্যাবরেথ , 19 বাইট

?:_100%}#00/_60*{+!

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

ব্যাখ্যা

?      Read input.
:      Duplicate.
_100%  Mod 100.
}      Move off to auxiliary stack.
#00/   Divide by 100, using the stack depth to get a 1, instead of _1.
_60*   Multiply by 60.
{+     Retrieve the earlier result and add it.
!      Print.

আইপি তার পরে একটি মৃত প্রান্তকে আঘাত করে এবং পিছনে সরে যেতে শুরু করে। এটি যখন পৌঁছায় /এটি শূন্য দ্বারা একটি বিভাগ চেষ্টা করে যা প্রোগ্রামটি শেষ করে।


2

জেলি , 5 বাইট

মোনাডিক লিঙ্ক হিসাবে (মাথা উঁচু করে নেওয়ার জন্য ধন্যবাদ!):

b³ḅ60

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

... বা সম্পূর্ণ প্রোগ্রাম হিসাবে:

bȷ2ḅ60

এটি 05AB1E এ সহজেই পোর্ট করা যায়, সুতরাং:

05 এ বি 1 ই , 5 বাইট

тв60β

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

কেবল ইনপুট পূর্ণসংখ্যাকে বেস 100 এ রূপান্তর করে এবং তারপরে ফলাফলটি বেস 60 থেকে পূর্ণসংখ্যায় রূপান্তর করে। সুতরাং, এটি ইনপুট% 100 + 60 * - ইনপুট / 100⌋ এর সমতুল্য



@cairdcoinheringaahing আমি মনে করি আপনি বোঝানো এই , কিন্তু জন্য ধন্যবাদ হেডস-আপ যাহাই হউক না কেন
জনাব Xcoder

2

এক্সেল ভিবিএ, 29 বাইট

বেনামে VBE তাত্ক্ষণিক উইন্ডো ফাংশন যা VBE তাত্ক্ষণিক উইন্ডোতে পরিসীমা [A1]এবং আউটপুটগুলি থেকে ইনপুট নেয় ।

?[A1]Mod 1E2+60*[Int(A1/100)]


2

Pari / জিপি , 16 বাইট

সহজবোধ্য:

n->n\100*60+n%100

দুর্ভাগ্যক্রমে এই দুর্দান্ত পদ্ধতিটি ব্যবহারের জন্য খুব দীর্ঘ:

n->[60,1]*divrem(n,100)

2

পুশি , 10 9 বাইট

কেভিন আমার নিজের ভাষায় আমাকে ছাপিয়ে গেছে ... ( ওভিএসের উত্তর থেকে পদ্ধতির ব্যবহার করে )

2dH/40*-#

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

10 বাইট

sjvj60*^+#

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

s             \ Split input into digits
 jvj          \ Join the first two and the last two
    60*       \ Multiply the first by 60
       ^+     \ Add the values
         #    \ Print

11 বাইট

আরও একটি বাইটের জন্য আমরা Input % 100 + 60 * ⌊Input / 100⌋পদ্ধতির ব্যবহার করতে পারি :

H2d%}/60*+#

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


1
9 পোর্ট তৈরি করে বাইট @ovs 'পাইথন 2 উত্তর : 2dH/40*-#। পুশিতে আগে কখনও প্রোগ্রাম করা হয়নি, তবে বেশ সুন্দর ভাষা বলে মনে হচ্ছে। :)
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুইজসেন এটি বেশ জেনেরিক স্ট্যাক ভিত্তিক ভাষা, আমার মনে হয় এটি টেবিলে নিয়ে আসা কেবলমাত্র ভিন্ন জিনিসটি ডাবল স্ট্যাক ... তবে আপনাকে ধন্যবাদ, এবং গল্ফের জন্য ধন্যবাদ :)
ফ্লিপট্যাক

1

05 এ বি 1 ই , 9 বাইট

т÷60*¹т%+

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

ব্যাখ্যা:

т÷60*¹т%+

т         // Push number 100
 ÷        // Integer division with the input
  60      // Push number 60
    *     // Multiply with the previous result
     ¹    // Push input
      т   // Push 100 again
       %  // Modulo
        + // Add the first and the second result

সম্ভবত বেস রূপান্তরগুলির সাথে কিছু কৌশল আছে যা 05AB1E এ অর্জন করা যেতে পারে, তবে আমি এটি খুঁজে পাইনি।



1

রেটিনা , 11 বাইট

.{100}
60$*

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

আনারি ইনপুট এবং আউটপুট । পরীক্ষার স্যুটটি সুবিধার জন্য থেকে এবং দশমিক দিকে রূপান্তর করে।

কেবল দুই অঙ্কের জন্য এই ধরণের বেস রূপান্তরটি করা আনারিতে অবাক করা সহজ। আমরা কেবল 100 1টি রানের সাথে মিল রেখে 60 1টি দিয়ে তাদের প্রতিস্থাপন করব । যে কিছু বাকি রয়েছে তা দশমিক উপস্থাপনের শেষ দুটি অঙ্কের সাথে মিল রাখে এবং অপরিবর্তিত থাকে।


1

অ্যালিস , 19 বাইট

/o
\i@/.'d%~'d:'<*+

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

ব্যাখ্যা

খুব খারাপ আমি ভাষা থেকে ডিভোড সরিয়েছি , আমার ধারণা ...

/o
\i@/...

ডেসিমাল I / O কার্ডিনাল (গাণিতিক) মোডে নিখুঁতভাবে পরিচালিত লিনিয়ার প্রোগ্রামগুলির জন্য এটি কেবলমাত্র সাধারণ কাঠামো।

.     Duplicate input.
'd%   Mod 100.
~     Swap with other copy.
'd:   Divide by 100.
'<*   Multiply by 60.
+     Add.

1

মিল্কিওয়ে , 10 বাইট

':Z/v40*-!

ব্যবহার: ./mw code.mwg -i 9999

ব্যাখ্যা:

code       explanation                          stack

'          push input to stack                  [input]
 :         duplicate ToS                        [input, input]
  Z        push 100                             [input, input, 100]
   /v      integer division (divide and floor)  [input, ⌊input/100⌋]
     40    push 40                              [input, ⌊input/100⌋, 40]
       *   multiply                             [input, ⌊input/100⌋*40]
        -  subtract                             [input - ⌊input/100⌋*40]
         ! print

1

1
আমি আর এ আমার নিজস্ব সমাধান তৈরি করেছি এবং এটি এর চেয়ে কম মার্জিত ছিল।
অ্যান্ড্রু ব্রাজা

আপনি scanউত্তর কেটে নিতে পারেন যেহেতু বেশিরভাগ উত্তর কেবলমাত্র ভেরিয়েবলটি ইতিমধ্যে সংজ্ঞায়িত বলে ধরে নিয়েছে।
অ্যান্ড্রু ব্রাজা

নিয়মগুলি যে এর সাথে সামঞ্জস্যপূর্ণ। মানটি ক্যাপচারের জন্য আপনার অন্য একটি চ্যালেঞ্জগুলির একটি ফাংশন বা স্ক্যান করতে হবে।
চিহ্নিত করুন


1

রেক্সএক্স, 25 বাইট

arg t
say t%100*60+t//100

(@Ovs এর আরও একটি অনুবাদ)



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