Square isang Numero ng aking Daan

Gryphon 09/12/2017. 20 answers, 1.959 views
code-golf number

Ang mga tao ay patuloy na nagsasabi sa akin na ang parisukat ng isang numero ay ang bilang na pinarami mismo. Maliwanag na mali ito. Ang tamang paraan upang parisukat ang isang numero ay upang gawin ito sa isang parisukat, sa pamamagitan ng stacking ito sa tuktok ng kanyang sarili ng isang bilang ng beses na katumbas ng bilang ng mga digit na mayroon ito, at pagkatapos ay pagbabasa ng lahat ng mga numero mula sa nagreresulta parisukat, parehong pahalang (mula sa kaliwa sa kanan lamang) at patayo (mula sa hanggang sa pababa lamang), at pagkatapos ay idagdag ang mga ito nang sama-sama. Kaya, para sa numero 123, una kang lumikha ng parisukat:

123
123
123 

Pagkatapos ay dadalhin mo ang lahat ng mga hilera at haligi mula sa parisukat, at idagdag ang mga ito nang sama-sama:

123+123+123+111+222+333 

Na nagbibigay sa amin ng resulta ng 1035 .

Para sa mga negatibong numero, regular mong isalansan (tandaan na binibilang mo lamang ang bilang ng mga digits , kaya ang negatibong tanda ay hindi kasama sa haba), at pagkatapos ay basahin nang normal ang mga pahalang na mga numero (na may mga negatibong tanda), at pagkatapos ay huwag pansinin ang mga negatibong senyales para sa ang mga vertical na numero. Kaya, para sa bilang -144 namin ang parisukat:

-144
-144
-144 

Na nagbibigay sa amin ng -144-144-144+111+444+444 , na katumbas ng 567

Para sa mga numero na may isang digit lamang, ang parisukat ay palaging katumbas ng numero na nadoble (basahin nang isang beses pahalang at isang beses patayo). Kaya binibigyan tayo ng 4

4 

Na nagbibigay sa amin ng 4+4 , na katumbas ng 8 .

Para sa mga numero na may mga bahagi ng decimal, ang stack ay normal (tandaan na ang mga digits lamang ay binibilang sa dami ng beses na tinatapon mo ang numero, at samakatuwid ay hindi binibilang ang decimal point), at huwag pansinin ang mga simbolo ng decimal kapag binabasa ang mga vertical na numero. Halimbawa, ang numero 244.2 nagbibigay sa amin

244.2
244.2
244.2
244.2 

Na nagbibigay sa amin ng 244.2+244.2+244.2+244.2+2222+4444+4444+2222 , na katumbas ng 14308.8 .

Ang mga fractional o kumplikadong mga numero ay hindi maaaring maging kuwadrado.

Iyong gawain:

Ako ay pagod ng mga squaring numero sa aking paraan sa pamamagitan ng kamay, kaya ako nagpasya upang i-automate ang proseso. Isulat sa akin ang isang programa o function na tumatagal ng float o string, alinman ang gusto mo, bilang input at ibalik ang resulta ng squaring ito ang aking paraan.

Mga halimbawa:

123    -> 1035
388    -> 3273
9999   -> 79992
0      -> 0
8      -> 16
-6     -> 0
-25    -> 27
-144   -> 567
123.45 -> 167282.25
244.2  -> 14308.8
2      -> 4
-0.45  -> 997.65
0.45   -> 1000.35 

Pagmamarka:

Ang aking mga kamay ay nakakakuha ng masikip mula sa pagsulat ng lahat ng mga parisukat, at ang aking computer ay hindi sumusuporta sa kopyahin / i-paste, kaya ang entry na may hindi bababa sa halaga ng code para sa akin na i-type (sinusukat sa bytes para sa ilang kadahilanan?) Na panalo!

5 Comments
Gryphon 07/29/2017
Napagtanto ko na hindi ito sa sandbox para sa matagal na (lamang ng kaunti sa loob ng isang araw), ngunit mayroon na itong 7 upvotes, kaya, naisip ko malamang na mag-post.
1 Leaky Nun 07/29/2017
Ang "123.45" at "244.2" ay hindi wastong mga kamay sa at sa sarili nito dahil ang computer ay nag-iimbak ng numero sa binary. Ito ay hindi karaniwang isang problema hanggang sa ang problema ay nakasalalay sa decimal na representasyon.
3 Leaky Nun 07/29/2017
@Gryphon Ito ay kung saan ito nabigo. 244.2 ay hindi isang float na numero. Hindi ito maaaring ma-convert sa string na "244.2" .
2 Leaky Nun 07/29/2017
@Gryphon Ngunit ang mga pag-uugali na tulad nito ay ginagawang napakadali.
7 Gryphon 07/29/2017
Bakit tatlong malapit na boto? Kung 11 ang mga tao ay maaaring sumagot sa tanong, sa tingin ko marahil ito ay medyo malinaw!

20 Answers


Erik the Outgolfer 07/29/2017.

05AB1E , 7 bytes

þSDg×+O 

Subukan ito online!

Paliwanag

þSDg×+O Implicit input
þ       Keep digits
 S      Get chars
  D     Duplicate
   g    Length
    ×   Repeat string(s)
     +  Add (implicit input added to all elements)
      O Sum 
4 comments
3 Jonathan Allan 07/29/2017
Ooo paliwanag kapag maaari mong mangyaring
1 Jonathan Allan 07/29/2017
Din tandaan ko na ang solong nangungunang zero ay isang kinakailangan sa input para sa -1 <input <1 (ibig sabihin, 0.45 at .45 ay magkakaibang input ngunit ang parehong numero, tanging ang dating ay katanggap-tanggap)
Erik the Outgolfer 07/29/2017
@ JonathanAllan Ang huli ay hindi hawakan anyways.
Erik the Outgolfer 07/29/2017
@ JonathanAllan Tapos.

Jonathan Allan 07/29/2017.

Jelly , 13 12 bytes

fØDẋ€L$ŒV+VS 

Isang monadikong link na tumatanggap ng isang listahan ng mga character (isang mahusay na nabuo decimal na numero, ang solong nangungunang zero ay isang kinakailangan para sa -1 < n < 1 ) at bumabalik ng isang numero.

Try it online!

14 bytes upang tanggapin at ibalik ang mga numero (limitado ang input sa +/-10-5 pamamagitan ng ŒṘ ): ŒṘfØDẋ€L$ŒV+⁸S .

Paano?

fØDẋ€L$ŒV+VS - Link: list of characters         e.g. "-0.45"
 ØD          - yield digit characters                "0123456789"
f            - filter keep                           "045"
      $      - last two links as a monad:
     L       -   length (number of digit characters) 3
   ẋ€        -   repeat list for €ach digit          ["000","444","555"]
       ŒV    - evaluate as Python code (vectorises)  [0,444,555]
          V  - evaluate (the input) as Jelly code    -0.45
         +   - addition (vectorises)                 [-0.45,443.55,554.55]
           S - sum                                   997.65 
4 comments
Erik the Outgolfer 07/29/2017
Umm, maaari mong palitan ang +€ sa + sa 15-byte na bersyon para sa -1.
Jonathan Allan 07/29/2017
Nagawa na, salamat bagaman!
Erik the Outgolfer 07/29/2017
Umm hindi sa 15-byte na bersyon. EDIT: masyadong maaga 3 segundo ipagpalagay ko ...
Jonathan Allan 07/29/2017
Napansin lang ni Yup ang sinabi mo 15 bersyon ng byte - salamat muli!

nimi 07/29/2017.

Haskell, 59 56 bytes

f s|l<-filter(>'.')s=0.0+sum(read<$>(s<$l)++[c<$l|c<-l]) 

Ang input ay kinuha bilang isang string.

Subukan ito online!

Paano ito gumagana

l<-filter(>'.')s      -- let l be the string of all the numbers of the input string
f s   = 0.0 + sum     -- the result is the sum of (add 0.0 to fix the type to float)
   read<$>            -- turn every string of the following list into a number
   s<$l               -- length of l times the input string followed by
   [c<$l|c<-l]        -- length of l times c for each c in l 

ETHproductions 07/29/2017.

Japt v2 , 16 bytes

o\d
l
¬xpV +V*Ng 

Subukan ito online!

Paliwanag

o\d    First line: Set U to the result.
o      Keep only the chars in the input that are
 \d      digits. (literally /\d/g)

l    Second line: Set V to the result.
l    U.length

¬xpV +V*Ng    Last line: implicitly output the result.
¬             Split U into chars.
 x            Sum after
  pV            repeating each V times.
     +V*Ng    Add V * first input (the sum of the horizontals) to the result. 

Ian H. 07/31/2017.

C # (.NET Core), 150 141 133 bytes

Saved 9 bytes thanks to @TheLethalCoder
Nai-save na isa pang 8 bytes salamat sa @ TheLethalCoder

a=>{var c=(a+"").Replace(".","").Replace("-","");int i=0,l=c.Length;var r=a*l;for(;i 

Subukan ito online!

Dadalhin ang isang string bilang isang input at output ang 'squared' numero bilang isang float.


Sinusunod ng code na ito ang sumusunod na algorithm:

  1. Lumikha ng isang bagong string mula sa input, ngunit wala ang mga decimal point at mga simbolo, upang makuha namin ang aming haba at ang mga numero para sa mga haligi mula doon.

  2. Kalkulahin ang mga oras ng pag-input sa haba ng string na nilikha namin sa point 1.

  3. Para sa bawat hanay sa aming 'parisukat', lumikha ng isang bagong string na may hanay ng hanay at haba ng hilera at idagdag ito sa aming resulta.

Halimbawa:

Input: -135.5

  1. Kung pinapalitan natin ang mga decimal point at mga simbolo nakukuha natin ang string na 1355 , na may haba na 4 .
  2. Ang mga oras ng pag-input ay 4: -135.5 * 4 = -542 .
  3. Ngayon ay lumikha kami ng mga bagong string para sa bawat haligi, i-parse ang mga ito at idagdag ang mga ito sa aming mga resulta:
    1111 , 3333 , 5555 , 5555 .

Kung sumasama namin ang mga numerong ito, makakakuha tayo ng 15012 , na eksakto kung ano ang gagawin ng aming programa.

5 comments
1 Dada 07/31/2017
Maligayang pagdating sa site, at magandang unang sagot (ang mga paliwanag ay partikular na pinapahalagahan!)!
Ian H. 07/31/2017
@Dada Salamat! Kahit matigas ako sa halip ay hindi nasisiyahan sa pamamagitan ng mga bytes na nakukuha ko mula sa mga bagay-bagay tulad ng string.Replace() , ngunit hulaan ko iyon ang tanging paraan na ito gumagana!
TheLethalCoder 07/31/2017
Maaaring i-save ang ilang mga byte sa pamamagitan ng pagtatakda ng i at l sa mga kamay.
Ian H. 07/31/2017
@ TheLethalCoder Akala ng na rin, sadly pag-index ay hindi gumagana sa mga kamay, at. Ang .Length ay hindi maaaring ipinahiwatig upang ma-convert sa float.
1 TheLethalCoder 07/31/2017
a=>{var c=a.Replace(".","").Replace("-","");int i=0,l=c.Length;var r=float.Parse(a)*l;for(;i 141 bytes. Maaaring i-save sa pamamagitan ng pagkuha ng input bilang isang float at paghahagis sa isang string na may n+"" ngunit hindi ko na-check.

Erik the Outgolfer 07/29/2017.

Brachylog , 23 bytes

{∋ịṫ}ᶠ⟨≡zl⟩j₎ᵐ;[?]zcịᵐ+ 

Subukan ito online!

Brachylog ay hindi maganda sa mga kamay ...

Paliwanag:

{∋ịṫ}ᶠ⟨≡zl⟩j₎ᵐ;[?]zcịᵐ+ Takes string (quoted) input, with '-' for the negative sign
     ᶠ                  Return all outputs (digit filter)
{   }                    Predicate (is digit?)
 ∋                        An element of ? (input)
  ị                       Convert to number (fails if '-' or '.')
   ṫ                      Convert back to string (needed later on)
      ⟨   ⟩             Fork
       ≡                 Identity
         l               Length
                        with
        z                Zip
             ᵐ          Map
            ₎            Subscript (optional argument)
           j              Juxtapose (repeat) (this is where we need strings)
              ;         Pair with literal
               [ ]       List
                ?         ?
                  z     Zip
                   c    Concatenate (concatenate elements)
                     ᵐ  Map
                    ị    Convert to number
                      + Add (sum elements) 

Zgarb 07/29/2017.

Husk , 15 bytes

§+ȯṁrfΛ±TṁrSR#± 

Dadalhin ang isang string at nagbabalik ng isang numero. Subukan ito online!

Paliwanag

Ito ay isang nakakainis na ang built-in na pag-parse na function ay nagbibigay ng mga error sa pag-parse sa mga di-wastong input sa halip na bumabalik sa isang default na halaga, na nangangahulugan na dapat kong malinaw na i-filter ang mga haligi na binubuo ng mga di-digit. Kung ito ay bumalik 0 sa maling pag-input, maaari kong i-drop fΛ± at i-save ang 3 bytes.

§+ȯṁrfΛ±TṁrSR#±  Implicit input, e.g. "-23"
             #±  Count of digits: 2
           SR    Repeat that many times: ["-23","-23"]
         ṁr      Read each row (parse as number) and take sum of results: -46
  ȯṁrfΛ±T        This part is also applied to the result of SR.
        T        Transpose: ["--","22","33"]
     fΛ±         Keep the rows that contain only digits: ["22","33"]
   ṁr            Parse each row as number and take sum: 55
§+               Add the two sums: 9 

Mr. Xcoder 07/29/2017.

Python 3 , 95 94 87 85 84 bytes

 def f(i):l=[x for x in i if"/" 

Test Suite .

Python 3 , 78 bytes

 lambda x:sum(float(i*len(z))for z in[[i for i in str(x)if"/" 

Test Suite.

Ang pangalawang diskarte ay isang port sa Python 3 na inspirasyon ng @ opisyal na solusyon ng solusyon.


ThePirateBay 07/31/2017.

JavaScript, 75 62 bytes

a=>(b=a.match(/\d/g)).map(b=>a+=+b.repeat(c),a*=c=b.length)&&a 

Subukan ito online

-2 bytes thanks to Arnauld
-5 bytes thanks to Shaggy (ako bagaman ang function ay dapat makatanggap ng isang numero, ngunit ngayon nakikita ko na maraming iba pang mga sagot na makatanggap ng string masyadong)


Xcali 08/05/2017.

Perl 5 , 37 33 + 1 (-p) = 38 34 bytes

 $_*=@n=/\d/g;for$\(@n){$_+=$\x@n} 

Subukan ito online!

Ginamit ang ilang mga trick mula sa code ng Dom upang mag-ahit 4 bytes

Explained:

 @n=/\d/g;    # extract digits from input
$_*=@n;      # multiply input by number of digits
for$\(@n){   # for each digit:
  $_+=       # add to the input
  $\x@n}     # this digit, repeated as many times as there were digits
             # taking advantage of Perl's ability to switch between strings
             # and numbers at any point 
3 comments
Dom Hastings 07/31/2017
Dumating sa isang katulad na diskarte, ngunit pinamamahalaang upang makakuha ng isang pares ng mga bytes off gamit ang $ \ at lumabas sa loop: subukan ito online!
Xcali 08/05/2017
Ginamit ang ilang inspirasyon mula sa iyo upang mag-ahit sa akin. Ano ang "} {" construct sa dulo ng sa iyo? Hindi ako pamilyar sa isang iyon.
Dom Hastings 08/05/2017
Ito ang natutunan ko mula sa site na ito, karaniwang -n at -p literal na pambalot ng isang while(){...} paligid ng code kaya }{ breaks out na. Ang unsets na ito ay $_ ngunit kung gumamit ka ng $\ bilang iyong variable ito ay makakakuha pa rin ng naka-print dahil $\ ay nakadugtong sa bawat naka-print. Ibig sabihin maaari kang mag-imbak ng numero o ng isang bagay sa iyon at balewalain ang $_ . Hindi sigurado na isang mahusay na paliwanag, ngunit tingnan ang Mga Tip para sa golfing g sa Perl thread, sigurado ako na ipapaliwanag ito ng mas mahusay na! Ikinalulugod na nakatulong ang iyong iskor bagaman!

Erik the Outgolfer 07/29/2017.

Halaya , 17 bytes

ŒṘfØDẋ€L©$ŒV;ẋ®$S 

Subukan ito online!


Erik the Outgolfer 07/29/2017.

Pyth, 18 bytes

s+RvQsM*RF_lB@jkUT 

Subukan ito dito.


Mr. Xcoder 07/29/2017.

Pyth , 21 20 bytes

K@jkUTQ+smv*lKdK*lKv 

Test suite.

Gumagamit ng isang ganap na iba't ibang diskarte mula sa @ EriktheOutgolfer ng sagot , na tumulong sa akin golf 1 byte sa chat, mula sa 22 hanggang 21.


Paliwanag

  K@jkUTQ+s.ev*lKbK*lKv   K @ jkUTQ - Mga filter ang mga digit at nagtatalaga ng mga ito sa isang variable K.           m - Mapa.  Iterated sa pamamagitan ng mga digit na may isang variable d             v - Suriin (i-convert sa float).              * lKd - Multiplies bawat String digit sa pamamagitan ng haba ng K.          s - Sum         + - Sum                   * lKvQ - Multipies ang numero sa pamamagitan ng haba ng mga digit na String 

officialaimm 07/30/2017.

Python 2 , 81 74 bytes

-7 bytes thanks to @Mr. Xcoder -7 bytes thanks to @Mr. Xcoder : '/'

  • Dadalhin sa integer o float, bumalik float.
 lambda x:sum(float(i*len(z))for z in[[i for i in`x`if"/" 

Subukan ito online!

Paliwanag:

Sabihing 123.45 ang ibinigay bilang input. [i for i in`x`if"/" nagbibigay ng listahan ng mga stringified integers ['1','2','3','4','5'] (na kung saan ay z ). Ngayon kami ay umulit sa pamamagitan ng [x]+z ibig sabihin [123.45,'1','2','3','4','5'] , pagpaparami ng bawat elemento sa pamamagitan ng len(z) , dito 5 at pag-convert sa bawat isa Lumutang (upang ang mga string ay mag-convert nang naaayon), na nagbibigay ng [617.25,11111.0,22222.0,33333.0,44444.0,55555.0] . Panghuli namin kalkulahin ang sum(...) at kumuha ng 167282.25 .

4 comments
Mr. Xcoder 07/29/2017
78 bytes . Palitan ang i.isdigit() sa "/"
1 Mr. Xcoder 07/29/2017
74 bytes . Maaari mong palitan ang i.isdigit() sa "/" , sa katunayan, dahil pareho . at - magkaroon ng mas mababang mga code ng ASCII kaysa sa mga digit, at adn / ay nasa pagitan nila
officialaimm 07/29/2017
@ Mr.Xcoder Salamat ng maraming!
Mr. Xcoder 07/29/2017
Walang anuman. I-port na ito sa Python 3 bilang isang alternatibo sa aking sagot

Bruce Forte 07/30/2017.

Octave , 100 82 bytes

Salamat ng maraming @TomCarpenter para sa pagtuturo sa akin na ang mga takdang-aralin ay may halaga ng pagbalik at nagse-save sa akin ng 18 bytes!

 @(v)(n=nnz(s=strrep(num2str(abs(v)),'.','')-'0'))*v+sum(sum(s'*logspace(0,n-1,n))) 

Subukan ito online!

Unggued / Paliwanag

 function f=g(v)
  s=strrep(num2str(abs(v)),'.','')-'0';  % number to vector of digits (ignore . and -)
  n=nnz(s);                              % length of that vector
  f=n*v+sum(sum(s'*logspace(0,n-1,n)))   % add the number n times and sum the columns of the square
end 

Ang paraan na ito ay gumagana ay na karaniwang kailangan namin upang idagdag ang numero mismo n beses at pagkatapos ay idagdag ang kabuuan ng mga haligi. Summing s' * logspace(0,n-1,n) nakamit ang kabuuan ng mga haligi, halimbawa kung v=-123.4 na ang matrix ay magiging:

 [ 1     10    100   1000;
  2     20    200   2000;
  3     30    300   3000;
  4     40    400   4000 ] 

Kaya kailangan lang natin itong ibilang at tapos na tayo.

1 comments
1 Tom Carpenter 07/30/2017
Maaari mong i-save ang 18 bytes sa pamamagitan ng smushing lahat ng ito sa isang hindi kilalang function @(v)(n=nnz(s=strrep(num2str(abs(v)),'.','')-'0'))*v+sum(sum(‌​s'*logspace(0,n-1,n)‌​)) . Subukan ito online!

Mr. Xcoder 07/30/2017.

Swift 4 , 139 134 bytes

 func f(s:String){let k=s.filter{"/"<$0};print(Float(s)!*Float(k.count)+k.map{Float(String(repeating:$0,count:k.count))!}.reduce(0,+))} 

Test Suite.


Paliwanag

  • func f(s:String) - Tinutukoy ang isang function f sa isang tahasang parameter ng String.

  • let k=s.filter{"/"<$0} - Magsusulat ng mga digit: Napansin ko na pareho - at . may mas maliit na halaga ng ASCII kaysa sa lahat ng mga digit, at / pagitan . , - at 0 . Kaya, sinuri ko lang kung ang "/" ay mas maliit kaysa sa kasalukuyang karakter, tulad ng ginawa ko sa aking sagot sa Python.

  • print(...) - Naka-print ang resulta.

  • Float(s)!*Float(k.count) - Binabago ang parehong String at ang bilang ng mga digit sa Float at pinaparami ang mga ito (Hindi pinapayagan ni Swift ang Float at Int multiplication: ()). Kaya idinagdag nito ang numero ng x beses, kung saan ang x ay ang bilang ng mga digit na naglalaman nito.

  • k.mapNO maps over k with the current value $0 . - k.map{} mapa sa k nang kasalukuyang halaga $0 . String(repeating:$0,count:k.count) tumatagal ng bawat digit, lumilikha ng isang String ng x identical digit at Float(...)! convert ito sa isang Floating-point number.

  • .reduce(0,+) - Nakakuha ang kabuuan ng listahan sa itaas.

  • At sa wakas + tinataw ang dalawang resulta.


Kumuha tayo ng halimbawa!

Sabihin ang aming String ay "0.45" . Una, sinasala namin ang mga digit, kaya naiwan kami sa 0, 4, 5 . I-convert ang "0.45" sa Lumutang at multiply sa bilang ng mga digit: 0.45 * 3 = 1.35 . Pagkatapos ay dadalhin namin ang bawat digit at buksan ito sa isang String na paulit-ulit na digit hanggang mapuno ang lapad ng parisukat (kung gaano karaming mga digit ang mayroon): 0, 4, 5 -> 000, 444, 555 . Namin ito, 000 + 444 + 555 = 999 . Pagkatapos ay idagdag namin ang mga resulta nang sama-sama: 1.35 + 999 = 1000.35 .


TheLethalCoder 07/31/2017.

C #, 139 137 bytes

 using System.Linq;n=>{var d=(n+"").Where(char.IsDigit);return d.Sum(i=>int.Parse(new string(i,d.Count())))+new int[d.Count()].Sum(_=>n);} 

Saved 2 bytes thanks to @Ian H.

Subukan ito online!

Buong / Form na bersyon:

 namespace System.Linq
{
    class P
    {
        static void Main()
        {
            Func f = n =>            {
                var d = (n + "").Where(char.IsDigit);
                return d.Sum(i => int.Parse(new string(i, d.Count()))) + new int[d.Count()].Sum(_ => n);
            };

            Console.WriteLine(f(123));
            Console.WriteLine(f(-144));
            Console.WriteLine(f(4));
            Console.WriteLine(f(244.2));

            Console.ReadLine();
        }
    }
} 
2 comments
Ian H. 07/31/2017
Maaari mong i-save ang 2 bytes sa simula sa pamamagitan ng paggamit ng var d=(n+ ... halip ng var d = (n ...
TheLethalCoder 07/31/2017
@IanH. Nakalimutan na tanggalin ang lahat ng mga puwang -_- Iyan ang nakukuha ko para sa pagsagot habang gumagawa ng isang tawag na suporta.

Jenny_mathy 08/09/2017.

Mathematica, 107 bytes

(t=Length[s=#&@@RealDigits[#]//.{a___, 0}:>{a}];If[IntegerPart@#==0,t++];t#+Tr[FromDigits@Table[#,t]&/@s])& 

Titus 08/11/2017.

PHP, 78 88 +1 bytes

 for($e=preg_match_all("#\d#",$n=$argn);~$c=$n[$i++];)$s+=str_repeat($c,$e);echo$s+$n*$e; 

Patakbuhin bilang tubo na may -nR .

Maaaring magbigay ng mga babala sa PHP 7.1. Repasin $c,$e sa $c>0?$c:0,$e upang ayusin.


C McAvoy 07/31/2017.

Python 3 , 68 70 73 77 bytes

 lambda n:sum(float(n)+int(_*sum(x>"/"for x in n))for _ in n if"/"<_) 

Subukan ito online!

Ang mga loop sa bawat digit na character at inuulit ito sa pamamagitan ng bilang ng mga digit na mga pangkalahatang character, ginagawa iyon sa isang integer, at idinagdag iyon sa n . Sa ganitong paraan n makakakuha ng dagdag d beses, ang pahalang na bahagi ng kabuuan, kasama ang pag-uulit ng digit, na kung saan ay ang vertical na bahagi. Ang orihinal na ginamit str.isdigit ngunit >"/" , salamat sa iba sa thread na ito, nai-save ng maraming bytes. Makakatipid ng dalawang byte sa pamamagitan ng pagkuha n bilang isang string, ngunit ang output ay messier.

 lambda n:sum(n+int(_*sum(x>"/"for x in str(n)))for _ in str(n)if"/"<_) 

Subukan ito online!


HighResolutionMusic.com - Download Hi-Res Songs

1 The Chainsmokers

Beach House flac

The Chainsmokers. 2018. Writer: Andrew Taggart.
2 (G)I-DLE

POP/STARS flac

(G)I-DLE. 2018. Writer: Riot Music Team;Harloe.
3 Ariana Grande

​Thank U, Next flac

Ariana Grande. 2018. Writer: Crazy Mike;Scootie;Victoria Monét;Tayla Parx;TBHits;Ariana Grande.
4 Anne-Marie

Rewrite The Stars flac

Anne-Marie. 2018. Writer: Benj Pasek;Justin Paul.
5 Clean Bandit

Baby flac

Clean Bandit. 2018. Writer: Jack Patterson;Kamille;Jason Evigan;Matthew Knott;Marina;Luis Fonsi.
6 Nicki Minaj

No Candle No Light flac

Nicki Minaj. 2018. Writer: Denisia “Blu June” Andrews;Kathryn Ostenberg;Brittany "Chi" Coney;Brian Lee;TJ Routon;Tushar Apte;ZAYN;Nicki Minaj.
7 BlackPink

Kiss And Make Up flac

BlackPink. 2018. Writer: Soke;Kny Factory;Billboard;Chelcee Grimes;Teddy Park;Marc Vincent;Dua Lipa.
8 Imagine Dragons

Bad Liar flac

Imagine Dragons. 2018. Writer: Jorgen Odegard;Daniel Platzman;Ben McKee;Wayne Sermon;Aja Volkman;Dan Reynolds.
9 BTS

Waste It On Me flac

BTS. 2018. Writer: Steve Aoki;Jeff Halavacs;Ryan Ogren;Michael Gazzo;Nate Cyphert;Sean Foreman;RM.
10 Halsey

Without Me flac

Halsey. 2018. Writer: Halsey;Delacey;Louis Bell;Amy Allen;Justin Timberlake;Timbaland;Scott Storch.
11 Little Mix

Woman Like Me flac

Little Mix. 2018. Writer: Nicki Minaj;Steve Mac;Ed Sheeran;Jess Glynne.
12 Brooks

Limbo flac

Brooks. 2018.
13 Fitz And The Tantrums

HandClap flac

Fitz And The Tantrums. 2017. Writer: Fitz And The Tantrums;Eric Frederic;Sam Hollander.
14 Backstreet Boys

Chances flac

Backstreet Boys. 2018.
15 Lady Gaga

I'll Never Love Again flac

Lady Gaga. 2018. Writer: Benjamin Rice;Lady Gaga.
16 Diplo

Close To Me flac

Diplo. 2018. Writer: Ellie Goulding;Savan Kotecha;Peter Svensson;Ilya;Swae Lee;Diplo.
17 Rita Ora

Velvet Rope flac

Rita Ora. 2018.
18 Bradley Cooper

Always Remember Us This Way flac

Bradley Cooper. 2018. Writer: Lady Gaga;Dave Cobb.
19 Imagine Dragons

Machine flac

Imagine Dragons. 2018. Writer: Wayne Sermon;Daniel Platzman;Dan Reynolds;Ben McKee;Alex Da Kid.
20 Erika Sirola

Speechless flac

Erika Sirola. 2018. Writer: Teemu Brunila;Stefan Dabruck;Jürgen Dohr;Guido Kramer;Dennis Bierbrodt;Chris Braide;Robin Schulz.

Related questions

Hot questions

Language

Popular Tags