Trong nỗ lực đầu tiên của tôi tại mã golf cho nhiệm vụ "Trừ các số tiếp theo" tôi đã bắt đầu từ hàm (58 byte)
int f(int N, int P){int F;for(F=N;P;F-=++N,P--);return F;}
sau đó an toàn 5 byte khi chuyển sang lambda và di chuyển khởi tạo ra khỏi for(53)
[](int N,int P){int F=N;for(;P;F-=++N,P--);return F;}
và cuối cùng sau khi chuyển từ forsang whiletôi đã nhận được 51 byte:
[](int N,int P){int F=N;while(P--)F-=++N;return F;}
Mã kiểm tra không được mã hóa là một cái gì đó như:
#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;
}
CẬP NHẬT:
Trên thực tế forcó thể đạt đến độ dài tương tự như while:
[](int N,int P){int F=N;for(;P--;F-=++N);return F;}