สี่เหลี่ยมด้านขนาน a Number


18

ตอนนี้เรารู้วิธีทำจำนวนสี่เหลี่ยมและสามเหลี่ยมอย่างเหมาะสมแล้วเราจะเรียนรู้วิธีการสี่เหลี่ยมด้านขนาน ในการจัดรูปสี่เหลี่ยมด้านขนานเราจะจัดเรียงเป็นรูปสี่เหลี่ยมด้านขนานโดยการวางซ้อนกันบนตัวมันเองจำนวนครั้งเท่ากับจำนวนหลักที่มีและเพิ่มช่องว่างเพื่อทำให้เป็นรูปสี่เหลี่ยมด้านขนาน ดังนั้น123รูปแบบ:

   123
  123
 123

ตอนนี้เราใช้เวลาในแต่ละหมายเลขแนวนอนและแนวตั้งและเพิ่มพวกเขา123+123+123+1+12+123+23+3ซึ่งเท่ากับซึ่งเป็นสี่เหลี่ยมด้านขนานของ 531123

งานของคุณ:

เขียนโปรแกรมหรือฟังก์ชั่นที่ส่งกลับเป็นสี่เหลี่ยมด้านขนานของตัวเลข

การป้อนข้อมูล:

จำนวนเต็มไม่เป็นลบหรือจำนวนเต็มที่ไม่ใช่ลบแสดงด้วยสตริง

เอาท์พุท:

สี่เหลี่ยมด้านขนานของจำนวนเต็ม

กรณีทดสอบ:

1234567 -> 10288049
123     -> 531
101     -> 417
12      -> 39

เกณฑ์การให้คะแนน:

นี่คือคะแนนต่ำสุดเป็นไบต์ชนะ!



ทำไมต้องลงคะแนน
Gryphon - Reinstate Monica

คำตอบ:


9

MATLขนาด 12 ไบต์

tnEXyPY+c!Us

อินพุตเป็นสตริง ลองออนไลน์!

คำอธิบาย

พิจารณาการป้อนข้อมูล'123'เป็นตัวอย่าง

รหัสจะทำซ้ำอินพุต ( t) และสร้างเมทริกซ์เอกลักษณ์ ( Xy) ของขนาดสองเท่าของความยาวอินพุต ( nE):

1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1

จากนั้นพลิกมันกลับหัว ( P):

0 0 0 0 0 1
0 0 0 0 1 0
0 0 0 1 0 0
0 0 1 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0

สตริงป้อนเข้าซึ่งตีความว่าเป็นรหัส ASCII ของตัวเลขเทียบเท่ากับเวกเตอร์แถวที่เป็นตัวเลข

49 50 51

การบิดสองมิติแบบเต็มขนาด ( Y+) ของเวกเตอร์และเมทริกซ์ด้านบนให้

 0  0  0  0  0 49 50 51
 0  0  0  0 49 50 51  0
 0  0  0 49 50 51  0  0
 0  0 49 50 51  0  0  0
 0 49 50 51  0  0  0  0
49 50 51  0  0  0  0  0

การตีความตัวเลขเหล่านั้นกลับมาเป็นรหัส ASCII ( c) จะให้เมทริกซ์ถ่านต่อไปนี้โดยที่ถ่าน 0 แทนด้วยช่องว่าง:

     123
    123 
   123  
  123   
 123    
123

การ!แปลง( ) แปลงสิ่งนี้เป็น

     1
    12
   123
  123 
 123  
123   
23    
3     

การตีความแต่ละแถวเป็นตัวเลข ( U) จะให้เวกเตอร์คอลัมน์ตัวเลข

  1
 12
123
123
123
123
 23
  3

และรวมมัน ( s) ให้ผลสุดท้าย, 531.


1
ฉันได้กลิ่น ... การสนทนา
Adnan

1
@Adnan มีอะไรอีกบ้าง :-D
Luis Mendo

6

เรติน่า 22 ไบต์

.
$`;$&$';$_;
\d+
$*
1

ลองออนไลน์! ลิงค์มีกรณีทดสอบ คำอธิบาย: ขั้นตอนแรกแยกหมายเลขอินพุตที่แต่ละหลักและรวมคำนำหน้าพิเศษทั้งหมดและคำต่อท้ายรวมให้ตัวเลขแนวตั้งรวมทั้งหมายเลขอินพุตดั้งเดิมซ้ำสำหรับแต่ละหลักให้ตัวเลขแนวนอน ขั้นตอนที่เหลือจากนั้นก็รวมจำนวนผลลัพธ์


6

05AB1E ,  12 11  8 ไบต์

ฉันแน่ใจว่ารู้ว่าสิ่งนี้สามารถเล่นกอล์ฟต่อไปได้

-1 ไบต์ขอบคุณ Erik the Outgolfer (หลีกเลี่ยงการตัดคำ แต่ใช้การต่อข้อมูล)
แล้ว ...
-3 ไบต์เพิ่มเติมขอบคุณ Adnan (หลีกเลี่ยงการคูณด้วยความยาว -1 โดยเพิ่ม vectorising แล้วลบอินพุตออกตอนท้าย)

.s¹η++Oα

ลองออนไลน์!

อย่างไร?

.s¹η++Oα - implicit input, say i      e.g.  123
.s       - suffixes                         [3,23,123]
  ¹      - push i                           123
   η     - prefixes                         [1,12,123]
    +    - addition of top two              [4,35,246]
     +   - addition (vectorises)            [127,158,369]
      O  - sum                              654
       α - absolute difference abs(123-654) 531
         - implicit print

คุณสามารถใช้«เพื่อต่อท้ายคำต่อท้ายและคำนำหน้า:g<*¹.s¹η«O+
Erik the Outgolfer

1
.s¹η++Oαควรทำงานได้ 8 ไบต์
Adnan

ขอบคุณ @EriktheOutgolfer ทั้งสอง wraps ดูแปลกสำหรับฉัน!
Jonathan Allan

@Adnan - มันน่ารักดี!
Jonathan Allan

@JanathanAllan "ยินดีต้อนรับเคล็ดลับ!" ไม่แน่ใจว่าคุณจะได้รับอีกต่อไปแล้ว ...
Erik the Outgolfer


4

Husk , 13 12 ไบต์

ṁit§+SRL§+ḣṫ

ลองออนไลน์!

คำอธิบาย

              -- implicit input, say "123"
   §+         -- concatenate the results of the following two functions
     SR       --  ¹repeat the input n times, where n is the result of the next function
       L      --   length                                                  ["123","123"]
        §+   --  ²concatenate the results of the following two functions
          ḣ  --     prefixes                                              ["","1","12","123"]
           ṫ --     suffixes                                              ["123","23","3",""]
              -- inner concatenation                                      ["","1","13","123","123","23","3",""]
              -- outer concatenation                                      ["123","123","","1","13","123","123","23","3",""]
  t           -- all but the first element                                ["123","","1","13","123","123","23","3",""]
ṁ             -- map then sum
 i            --   convert to integer (where "" converts to 0)


4

Python 3 , 85 70 Bytes

f=lambda n,r=1,i=int:n[r:]and i(n[r:])+i(n[:r])+f(n,r+1)+i(n)or i(n)*2

สำหรับอินพุต 12345:

ผลรวมของอินพุท 1 + 2345 + 12345, 12 + 345 + 12345, 123 +45 + 12345, 1234 + 5 + 12345 โดยใช้การจัดทำดัชนีสตริงเพื่อดัชนี (r) = 1,2,3,4 ก่อนที่จะส่งไปยังเลขจำนวนเต็ม และเพิ่มเป็น 12345 * 2

ขอขอบคุณเป็นพิเศษไปที่:

-14 Bytes @Jonathan Allen

-1 Byte @ovs

ลองออนไลน์!


TIO เชื่อมโยงกับรหัสผิด (len(n)+1)สามารถที่จะแข็งแรงเล่นกอล์ฟ-~len(n)( ~xเป็น-1-x) -i(n)*~len(n)แล้วที่สามารถบันทึกไบต์อื่นโดยใช้ จากนั้นคุณสามารถทำให้มันเป็นฟังก์ชั่นนิรนาม: lambda n,i=int:sum(i(n[:r])+i(n[r:])for r in range(1,len(n)))-i(n)*~len(n)(74 bytes)
Jonathan Allan

ยิ่งทำให้ฟังก์ชันนั้นวนซ้ำได้ 71 ไบต์:f=lambda n,r=1,i=int:n[r:]and i(n[r:])+i(n[:r])+f(n,r+1)or-i(n)*~len(n)
โจนาธานอัลลัน


ฉันแก้ไขลิงก์ tio ของคุณ
Mr. Xcoder

3

Japt , 15 11 ไบต์

-4 ไบต์ขอบคุณ @Shaggy

¬£iYç
cUz)x

รับอินพุตเป็นสตริง

ลองออนไลน์!

คำอธิบาย

£

แยกอาร์เรย์อินพุตเป็นตัวเลข ( ¬) และแม็พด้วย ( £) ฟังก์ชันต่อไปนี้โดยที่ Y คือดัชนี
["1", "2", "3"]

iYç

ค่าอินพุต (โดยนัย) พร้อมYช่องว่าง ( ç) แทรก ( i) ที่จุดเริ่มต้น Uนี้ได้รับมอบหมายให้
["123", " 123", " 123"]

cUz1)x

เชื่อมต่อกับตัวเองหมุน 90 °ขวา ( 1เวลา) จากนั้นรวม ( x) ->
["123", " 123", " 123", " 1", " 12", "123", "23 ", "1 "]531


วิธีที่ฉันพยายามทำ แต่ฉันไม่สามารถไปถึงที่นั่นได้ด้วยเหตุผลบางอย่าง - ทำได้ดีมาก :) นี่เป็นรุ่น13 ไบต์
ขนดก


@Shaggy Awesome ฉันรู้ว่าต้องมีวิธีที่สั้นกว่าในการเพิ่มช่องว่างให้แต่ละบรรทัด ขอบคุณ!
Justin Mariner

3

Japt , 31 18 ไบต์

-13 ไบต์ขอบคุณ @ETHproductions

วิธีการนี้ใช้งานไม่ได้กับ Japt ทางออกของจัสตินดีกว่ามาก

[U*Ål U¬£tYÃUå+]xx

คำอธิบาย:

[U*Ål U¬£tYÃUå+]xx
[              ]    // Create a new array
 U*Ål               // Push: Input * Input.slice(1).length()
                    // Push:
      U¬            //   Input, split into chars
        £tY         //   Map; At each char: .substr(Index)
            Uå+     // Push: Cumulative reduce Input; with addition
                xx  // Sum all the items, twice

ลองออนไลน์!


3
ใช่ฉันกำลังเพิ่มทางลัดสำหรับUl : P
ETHproductions

อืม ... คุณไม่ต้องการทั้งUs ในฟังก์ชั่นและไอเท็มกลางในอาร์เรย์สามารถย่อตัวลงUå+ xได้ซึ่งฉันคิดว่าจะทำให้คุณลดลงเหลือ 23 ไบต์
ETHproductions

@ ETHproductions ขอบคุณ! ฉันได้มันลงอีก byte โดยจัดเรียงรายการ array ใหม่
โอลิเวอร์

คุณเปลี่ยนmx xเป็นxxเหรอ :-)
ETHproductions

@ETHproductions ฉันแน่ใจว่าสามารถขอบคุณอีกครั้ง :)
โอลิเวอร์

2

Ruby , 61 55 + 1 = 56 ไบต์

ใช้-nธง อินพุตจาก STDIN

p (1..~/$/).sum{|i|[$_[i,~/$/],$_[0,i],$_].sum &:to_i}

ลองออนไลน์!


สำหรับการป้อนข้อมูล102033โปรแกรมของคุณพิมพ์ในขณะที่ค่าที่ถูกต้องคือ728714 729702

NOOOO! ขอให้คุณเป็นตัวแทนของเดือนตุลาคม! (การแก้ไข brb 02033เป็นปัญหา)
Value Ink

ฉันคิดว่าเลขฐานแปดเป็นปัญหา แต่ฉันไม่แน่ใจ (btw ฉันไม่รู้ทับทิม) ขอบคุณสำหรับการชี้แจง :)

@ThePirateBay ไม่มีปัญหา ฉันกำลังทำงานกับโซลูชันที่สั้นกว่าและสลับกันซึ่งใช้อินพุตสตริงและแม้กระทั่งกับการแก้ไขที่จำเป็นฉันต้องสิ้นสุดการบันทึกไบต์ต่อไป :)
Value Ink

2

JavaScript, 77 74 ไบต์

บันทึกแล้ว 3 ไบต์ด้วยValue Ink

f=a=>[...a+a].map((_,b)=>a-=-z.substr((b-=n)>0?b:0,b+n),a*=n=(z=a).length)|a

console.log(f('123'));
console.log(f('101'));
console.log(f('12'));
console.log(f('1234567'));
console.log(f('102033'));


1

Pyth , 20 19 ไบต์

แนวทางนำหน้าปัจจุบันของฉัน (หวังว่าจะเล่นกอล์ฟต่อไป)

+*tlQsQssM+_M.__Q._

Test Suiteหรือลองวิธีทางเลือกที่มีการนับไบต์เดียวกัน

คำอธิบาย

+*tlQsQssM+_M.__Q._  - Full program that reads a String from STDIN, with implicit input.

  tlQ                - Length of the input - 1.
     sQ              - The input converted to an integer.
 *                   - Product of the above two elements. We will call this P.
                 ._  - Prefixes of the input.
          +          - Concatenated with:
           _M.__Q    - The prefixes of the reversed input, reversed.
        sM           - Convert each to an integer.
       s             - Sum.
+                    - Addition of the product P and the sum above.

"123"เพื่อให้เข้าใจถึงแนวคิดที่ดีกว่าที่เราจะนำตัวอย่างการพูด

  • ก่อนอื่นเราจะได้รับส่วนนำหน้าของอินพุต นั่นคือ['1', '12', '123']เหล่านี้คือ

  • จากนั้นเราจะได้รับส่วนนำหน้าของอินพุตที่กลับด้านคือ: ['3', '32', '321']['3', '23', '123']และย้อนกลับแต่ละด้วยเหตุนี้เราได้รับ

  • เราเชื่อมสองรายการเข้าด้วยกันและแปลงองค์ประกอบแต่ละรายการเป็นจำนวนเต็มดังนั้นเราจึงได้รับ [3, 23, 123, 1, 12, 123]เราเชื่อมทั้งสองรายการและแปลงแต่ละองค์ประกอบเป็นจำนวนเต็มดังนั้นเราจึงได้รับ

  • เมื่อรวมรายการผลลัพธ์ที่ได้คือ 285จากข้อสรุปรายการผลที่ได้คือ

  • ผลิตภัณฑ์Pคือความยาวของอินพุต - 1 (เช่น2 ) คูณด้วยจำนวนเต็มที่แทน ( 2 * 123 = 246)

  • ในท้ายที่สุดเรารวมผลลัพธ์ทั้งสอง: 285 + 246ดังนั้นเราจึงได้รับ531ซึ่งเป็นผลลัพธ์ที่ถูกต้อง


Pyth , 20 ไบต์

+*hlQsQsm+s>Qds<QdtU

ชุดทดสอบ

คำอธิบาย

คำอธิบายที่จะเกิดขึ้นหลังจากเล่นกอล์ฟต่อไป ฉันไม่สามารถเล่นกอล์ฟนี้ต่อไปได้ในตอนนี้ (ฉันมีความคิด)

+*hlQsQsm+s>Qds<QdtUQ  - Full program. Reads from STDIN. Q means input, and is implicit at the end.

  hlQ                  - Length of the input + 1.
     sQ                - The input converted to an integer.
 *                     - Multiply the above. We'll call the result P.
        m         tUQ  - Map over [1...length of the input)
          s>Qd         - input[currentItem:] casted to an integer.
              s<Qd     - input[:currentItem] casted to an integer.
         +             - Sum the above.
       s               - Sum the list.
+                      - Add the sum of the list and P.

1

q / kdb +, 34 ไบต์

วิธีการแก้:

{sum"J"$((c#c),c-(!)2*c:(#)x)#\:x}

ตัวอย่าง:

q){sum"J"$((c#c),c-(!)2*c:(#)x)#\:x}"1234567"
10288049
q){sum"J"$((c#c),c-(!)2*c:(#)x)#\:x}"123"    
531
q){sum"J"$((c#c),c-(!)2*c:(#)x)#\:x}"101"    
417
q){sum"J"$((c#c),c-(!)2*c:(#)x)#\:x}"12"     
39

คำอธิบาย:

{sum"J"$((c#c),c-til 2*c:count x)#\:x} / ungolfed
{                                    } / lambda function
                                    x  / implicit input
                                 #\:   / apply take (#) to each-left element with the right element
        (                       )      / the left element
                       c:count x       / count length and save in variable c
                     2*                / multiply by 2 (e.g. 6)
                 til                   / range, so 0 1 2 3 4 5
               c-                      / vector subtraction, so 3 2 1 0 -1 -2
         (   )                         / do this together
          c#c                          / 3 take 3, so 3 3 3
              ,                        / join, so 3 3 3 3 2 1 0 - 1 -2          
    "J"$                               / cast this "123", "123", "123" .. "23" to longs
 sum                                   / sum them up and return result


1

Swift 3 , 213 bytes

func f(n:String){print((n.characters.count-1)*Int(n)!+(0..<n.characters.count).map{r in Int(n[n.index(n.startIndex,offsetBy:r)..<n.endIndex])!+Int(n[n.startIndex..<n.index(n.endIndex,offsetBy:-r)])!}.reduce(0,+))}

ไม่สามารถทดสอบออนไลน์ได้เพราะมันช้าและหมดเวลา คุณสามารถลองใช้งานใน Swift Playgrounds หากคุณต้องการทดสอบ

วิ่งตัวอย่าง

การป้อนข้อมูล:

f (n: "123")
f (n: "101")
f (n "1234567")

เอาท์พุท:

531
417
10288049

1

เยลลี่ 12 ไบต์

LḶṚ⁶ẋ;€µ;ZVS

ลองออนไลน์!

รับอินพุตเป็นสตริง สร้าง "สี่เหลี่ยมด้านขนาน" เป็นเมทริกซ์ของอักขระจากนั้นประเมินแต่ละแถวและคอลัมน์เพื่อให้ได้ตัวเลขเพื่อหาผลรวม

คำอธิบาย

LḶṚ⁶ẋ;€µ;ZVS  Input: string S
L             Length
 Ḷ            Lowered range - [0, 1, ..., len(S)-1]
  Ṛ           Reverse
   ⁶          The char ' ' (space)
    ẋ         Create that many characters of each in the range
     ;€       Prepend each to S
       µ      Begin a new monadic chain
        ;     Concatenate with
         Z    Transpose
          V   Eval each string
           S  Sum

1

C (GCC) ,95 8481 ไบต์ (78 + -lmธงคอมไพเลอร์)

Hi! นี่คือการส่งครั้งแรกของฉันฉันหวังว่าฉันจะไม่ผิดกฎใด ๆ

g,o,l;f(char*s){l=atoi(s);while(s[o++])g+=l/pow(10,o)+atoi(s+o);return g+l*o;}

ลองออนไลน์!

Ungolfed โดยไม่มีคำเตือน:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int g,o,l;

int f(char *s){
  l = atoi(s);

  while(s[o++]) {
    g+=l/pow(10,o)+atoi(s+o);
  }

  return g+l*o;
}

int main(void){
  printf("%d\n",f("1234567"));
  return 0;
}

ดูเหมือนจะใช้ได้สำหรับฉัน :)
Okx

อืม-lmสำหรับฟังก์ชั่นทางคณิตศาสตร์เป็นสิ่งจำเป็นสำหรับบาง runtimes C glibcเหมือนเช่น การคอมไพล์เช่นกับ MinGW (โดยใช้ Microsoft msvcrt.dll) มันไม่จำเป็น ดังนั้นไม่แน่ใจว่าจะต้องเพิ่มที่นี่หรือไม่ Anyways, ถ้าคุณเพิ่มมันก็จะทำให้ 3 ไบต์;)
เฟลิกซ์ Palmen

น่าเสียดายที่-lmจำเป็นสำหรับpow()ฟังก์ชันที่มี gcc ฉันพยายามทำงานโดยไม่มีมัน แต่ไม่สามารถหาวิธีแก้ปัญหาโดยใช้น้อยกว่า 6 ไบต์ (pow + ธงคอมไพเลอร์) ฉันไม่สามารถหากฎเกี่ยวกับวิธีรวมธงเข้ากับจำนวนนับและฉันรู้ว่าฉันได้ตั้งสมมติฐานที่ผิดเกี่ยวกับ-ตัวละครที่ไม่ได้นับ ฉันกำลังเพิ่ม +1 ไบต์ในขณะนี้
กอตติเนต์

-lmไม่จำเป็นgccแต่โดยข้อเท็จจริงที่glibcไม่รวมฟังก์ชันทางคณิตศาสตร์ในไลบรารีหลัก msvcrt.dllไม่ดังนั้นการรวบรวมบน windows กับผลงานโดยไม่ต้องgcc -lmนี่คือ nitpicking และฉันไม่แน่ใจว่าสิ่งที่กฎเกี่ยวกับเรื่องนี้ได้พูดจริง
เฟลิกซ์ Palmen

ขอบคุณสำหรับหัวขึ้น :) ฉันไม่สามารถลองข้อเสนอของคุณและ tio ดูเหมือนจะไม่เสนอความเป็นไปได้เช่นกันโชคไม่ดี
กอตติเนต์

1

Java 8, 147 137 126 116 114 ไบต์

n->{Integer l=(n+"").length(),r=n*l,i=0;for(;++i<l*2;)r+=l.valueOf((n+"").substring(i>l?i-l:0,i<l?i:l));return r;}

-13 ไบต์ (137 → 126 และ 116 → 114) ขอบคุณที่@ OlivierGrégoire

คำอธิบาย:

ลองที่นี่

n->{                          // Method with integer as parameter and return-type
  Integer l=(n+"").length(),  //  Length of the input integer
      r=n*l,                  //  Result-integer (starting at `n*l`)
      i=0;                    //  Index-integer (starting at 0)
  for(;++i<l*2;               //  Loop from 0 through two times `l` (exclusive)
    r+=                       //   Add to the result-integer sum:
       l.valueOf((n+"").substring(
                              //    Substring of input, converted to integer:
        i>l?                  //     If `i` is larger than `l`:
         i-l                  //      Substring starting at `i-l`
        :                     //     Else:
         0,                   //      Substring starting at 0
        i<l?                  //     If `i` is smaller than `l`:
         i                    //      Substring ending at `i` (exclusive)
        :                     //     Else:
         l)                   //      Substring ending at `l` (exclusive)
  );                          //  End of loop
  return r;                   //  Return resulting sum
}                             // End of method

1
114 n->{Integer l=(n+"").length(),s=n*l,i=0;for(;++i<l*2;)s+=l.valueOf((n+"").substring(l<i?i-l:0,i<l?i:l));return s;}ไบต์: มันเป็นหน้าต่างบานเลื่อนที่มี min-max เพื่อลดจำนวนการโทรไปที่ราคาแพงnew Integer(....substring(...))
Olivier Grégoire

1
@ OlivierGrégoireขอบคุณและสามารถตัดให้สั้นลงแม้บางมากขึ้นโดยการเปลี่ยนMath.max(0,i-l)ไป0>i-l?0:i-lและจะMath.min(i,l) i>l?l:iแก้ไขได้ทันที อ่าฉันเห็นว่าคุณได้แก้ไขความคิดเห็นของคุณหลังจากที่ฉันคัดลอกคำตอบที่ 126 ไบต์ ;)
Kevin Cruijssen

ใช่ขอโทษสำหรับการแก้ไข แต่ผมไม่ได้ตรวจสอบว่า;)
โอลิเวียGrégoire

1

R , 168 162 103 ไบต์

-6 ไบต์โดยไม่ใช้ c ()

-59 ไบต์ขอบคุณ @Giuseppe

function(n){k=nchar(n)
a=k*strtoi(n)
for(i in 1:k)for(j in i:k)a=a+(i==1|j==k)*strtoi(substr(n,i,j))
a}

ลองออนไลน์!

รับอินพุตเป็นสตริง

ฉันแน่ใจว่ามีการปรับปรุงอย่างแน่นอนโดยหลักแล้วในการใช้ประโยชน์จากจุดแข็งของ R ... แต่ในความท้าทายที่ต้องจัดการกับสายอักขระฉันพยายามดิ้นรนเพื่อดูว่า

แก้ไข: ดีกว่ามากตอนนี้ที่ฉันไม่ได้ทำซ้ำกับความคิดที่ไม่ดี!



@Giuseppe อ่าขอบคุณ! นั่นเป็นพื้นที่ว่างเปล่าจำนวนมากตั้งแต่เมื่อฉันยังคงใช้อินพุตจำนวนเต็ม ฉันชอบวิธี strtoi (substr ()) และเคล็ดลับ (a | b) นั้นฉลาดกว่าที่ฉันมี ขอบคุณสำหรับการปรับปรุง! มันเกือบจะเป็นคำตอบที่แตกต่างกันที่จุดนี้ ...
CriminallyVulgar

ที่เกิดขึ้นเมื่อคุณเพิ่มวิธีการอื่น! ฉันไม่สามารถหาลูปได้ด้วยตัวเอง แต่ฉันคิดว่าคุณอาจสร้างดัชนีได้substrอย่างชัดเจนแทนที่จะวนซ้ำซึ่งจะช่วยประหยัดไม่กี่ไบต์
Giuseppe


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.