Dans ma première tentative de code de golf pour la tâche "Soustraire les nombres suivants" je suis parti de la fonction (58 octets)
int f(int N, int P){int F;for(F=N;P;F-=++N,P--);return F;}
puis sécurisez 5 octets avec passage à lambda et initialisation déplacée hors de for(53)
[](int N,int P){int F=N;for(;P;F-=++N,P--);return F;}
et finalement, après avoir basculé de forà, whilej'ai obtenu 51 octets:
[](int N,int P){int F=N;while(P--)F-=++N;return F;}
Le code de test ungolfed est quelque chose comme:
#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;
}
MISE À JOUR:
En fait , forpeut atteindre la même longueur que while:
[](int N,int P){int F=N;for(;P--;F-=++N);return F;}