चुनौती: किसी भी भाषा में एक Delacorte नंबर की गणना को लागू करना। सबसे छोटा कोड जीतता है।
अलग पूर्णांकों का एक दिया वर्ग मैट्रिक्स के लिए 1..n² (संभावित दुष्प्रभावों लंबाई n 3 और 27 के बीच कम से कम), उसके डेलाकोर्ट संख्या उत्पादों का योग है gcd (ए, बी) × distance² (क, ख) प्रत्येक विशिष्ट के लिए पूर्णांक {a, b} की जोड़ी।
निम्नलिखित उदाहरण 160 की Delacorte संख्या के साथ एक 3 × 3 वर्ग दिखाता है।
3 2 9
4 1 8
5 6 7
इस वर्ग में हमारे पास गणना करने के लिए 36 अलग जोड़े हैं, उदाहरण के लिए जोड़ी 4 और 6: gcd (4, 6) × दूरी 6 (4, 6) = 4
परीक्षण के लिए एक और उदाहरण वर्ग - इसमें 5957 की एक Delacorte संख्या है:
10 8 11 14 12
21 4 19 7 9
5 13 23 1 16
18 3 17 2 15
24 22 25 6 20
Delacorte नंबर इस प्रोग्रामिंग प्रतियोगिता से लिए गए हैं - आगे के विवरण के लिए देखें ... प्रतियोगिता जनवरी 2015 में समाप्त हो गई। यह बहुत मजेदार था!
नियम:
आवश्यक लाइन ब्रेक 1 काउंट के रूप में गिना जाता है। आप अपने गोल्फ के घोल को लाइन ब्रेक के साथ पोस्ट कर सकते हैं, लेकिन वे केवल उस भाषा में आवश्यक होने पर गिने जाते हैं।
आप इनपुट और आउटपुट को संभालना चुन सकते हैं और आपको अपनी भाषा के आवश्यक ढांचे को गिनने की ज़रूरत नहीं है , जैसे मानक-शामिल या मुख्य फ़ंक्शन हेडर। केवल वास्तविक कोड मायने रखता है (शॉर्टकट / उर्फ परिभाषा सहित), इस C # उदाहरण में:
namespace System
{
using Collections.Generic;
using I=Int32; //this complete line counts
class Delacorte
{
static I l(I[]a){return a.Length;} //of course this complete line counts
static void CalculateSquare(int[] a, out int r)
{
r=0;for(I i=l(a);i-->0;)r+=a[i]; //here only this line counts
}
static void Main()
{
int result;
CalculateSquare(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, out result);
Console.Write(result); //should output 140 for the example
Console.ReadKey();
}
}
}
आप वर्ग को 2-आयामी सरणी या प्रॉम्प्ट से या स्ट्रिंग या कुछ मानक संग्रह प्रकार के रूप में भी इनपुट कर सकते हैं। एक 2-आयामी सरणी ही वर्ग की साइड लंबाई की गणना करने का एकमात्र तरीका नहीं है।
वास्तविक कार्य के लिए एक उप-कार्य की आवश्यकता नहीं है, आप कोड को सीधे मेन () में भी डाल सकते हैं।
यहां तक कि यहां भी अधिक तैयारी की अनुमति है:
using System;
unsafe class Delacorte
{
static void CalculateSquare(int* a, out int r)
{
r=0;while(*a>0)r+=*a++; //only this line counts
}
static void Main()
{
var input = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; //adding a terminator
int result;
fixed (int* a = &input[0]) //necessary in C#
CalculateSquare(a, out result);
Console.Write(result);
Console.ReadKey();
}
}
यदि आप अनिश्चित हैं कि आपकी लंबी तैयारी इन नियमों की भावना में है या इसे धोखा कहा जा सकता है, तो बस पूछें :)
usingउदाहरण देखें - यदि इसका उपयोग लाइब्रेरी को शामिल करने के लिए किया जाता है क्योंकि अन्यथा आप कुछ फ़ंक्शन नहीं कह सकते, यह मुफ़्त है। यदि आप किसी चीज के लिए कुछ छोटे उपनामों को परिभाषित करने के लिए इसका उपयोग करते हैं, तो पूरा निर्देश मायने रखता है।