Для данного числа я должен вывести, сколько существует триплетов, которые составляют это число.Также 1 + 1 + 8 = 8 + 1 + 1 = 1 + 8 + 1.
Код ниже предоставлен пользователем Klutt.Я попробовал это, и действительно, это работает, за исключением больших чисел.
int n; /* to store the number */
long i=0; /* counter (long, just to be sure) */
scanf("%d", &n);
/* makes triplets [a, b, c] and looks if the sum of those numbers is equal to the
* given number.
*/
for(int a=1; a<n; a++) {
for(int b=a; b<n; b++) {
for(int c=b; c<n; c++) {
if(a+b+c == n) {
i++;
};
};
};
};
Из-за долгого времени CPU я попытался изменить переменные на unsigned int и unsigned long и изменил цикл forк другим типам циклов, чтобы увидеть любой из них влиял на процессорное время.
(Я ничего не знаю о том, как действительно повлиять на это время. И мой опыт кодирования также почти равен 0).
Но когда, например, я вставляю число выше 1000,вычисление ответа занимает более 10 секунд.