도전 과제 : 모든 언어로 딜라 코트 번호 계산을 구현하십시오. 가장 짧은 코드가 승리합니다.
별개의 정수 1..n² ( 적어도 측면 길이 n 은 3에서 27 사이) 의 주어진 정사각 행렬의 경우, 델라 코트 수는 각 별개 의 곱 gcd (a, b) × distance² (a, b)의 합 입니다. 정수 쌍 {a, b}.
다음 예제는 Delacorte Number가 160 인 3x3 정사각형을 보여줍니다.
3 2 9
4 1 8
5 6 7
이 정사각형에는 계산할 36 개의 고유 쌍이 있습니다. 예를 들어 쌍 4와 6 : gcd (4, 6) × 거리 ² (4, 6) = 4
테스트를위한 또 다른 예제 스퀘어-델라 코트 번호는 5957입니다.
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 Numbers는 이 프로그램 콘테스트 에서 가져 왔습니다. 자세한 내용은 여기를 참조하십시오. 콘테스트는 2015 년 1 월에 종료되었습니다. 정말 재미있었습니다!
규칙 :
필요한 줄 바꿈은 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 차원 배열은 정사각형의 측면 길이를 직접 계산할 필요가없는 유일한 방법입니다.
실제 작업에 대한 하위 함수는 필요하지 않으며 Main () 내에 코드를 직접 넣을 수도 있습니다.
다음과 같이 더 많은 준비가 무료로 허용됩니다.
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
예를 참조하십시오 -그렇지 않으면 함수를 호출 할 수 없기 때문에 라이브러리를 포함하는 데 사용되는 경우 무료입니다. 이를 사용하여 임의의 짧은 별칭을 정의하면 전체 명령이 계산됩니다.