// f(n) = n + f(n - 1) // f(1) = 1 long add_n(unsigned n) { if(n <= 1) return 1; return n + add_n(n -1); }
int main(void) { unsigned n; long sum; printf("pls input n \n"); scanf("%u", &n); sum = add_n(n); printf("sum = %ld \n", sum); return 0; }
//меню добавления узлов с клавиатуры NODE* add(NODE* list) { int uc; do { system("cls"); printf_s("\n ДОБАВЛЕНИЕ ДАННЫХ ВРУЧНУЮ\n\n"); puts(" 1 - В начало списка"); puts(" 2 - В произвольную позицию"); puts(" 3 - В конец списка"); puts(" 0 - Назад"); uc = userchoice(); switch (uc) { case 1: list = add_first(list); break; case 2: list = add_n(list); break; case 3: list = add_last(list); break; case 0: break; default: system("cls"); printf_s("\n ОШИБКА\n"); printf_s("\n Введите существующий пункт\n\n "); system("pause"); break; } } while (uc && uc < 0 || uc > 3); return list; }