कार्य के लिए कोड गोल्फ में मेरे पहले प्रयास में "अगले नंबरों को घटाएं" मैंने फ़ंक्शन (58 बाइट्स) से शुरू किया है
int f(int N, int P){int F;for(F=N;P;F-=++N,P--);return F;}
फिर लैम्ब्डा में शिफ्टिंग के साथ 5 बाइट्स को सुरक्षित रखना और for
(53) से बाहर निकलना।
[](int N,int P){int F=N;for(;P;F-=++N,P--);return F;}
और आखिरकार मुझे 51 बाइट्स से स्विच for
करने के बाद while
:
[](int N,int P){int F=N;while(P--)F-=++N;return F;}
अनगुल्ड टेस्ट कोड कुछ इस तरह है:
#include <iostream>
int main(void)
{
int N, P;
std::cin >> N >> P;
auto f = [](int N,int P)
{
int F = N;
while (P--)
F -= ++N;
return F;
};
std::cout << f(N, P) << std::endl;
return 0;
}
अपडेट करें:
वास्तव for
में एक ही लंबाई तक पहुँच सकते हैं while
:
[](int N,int P){int F=N;for(;P--;F-=++N);return F;}