@serhey797

Как исправить код?

Как исправить код, чтоб можно было вводить число через консоль.
Задача - Вычислить количество различных представлений натурального числа N в виде суммы натуральных чисел

#include <stdlib.h>
#include <stdio.h>
#define M 100 // Максимальное число слагаемых
int a[M], Kk;
 
void Out()
{ int i;
  for(i=0; i<Kk; i++) printf("%d ", a[i]);
  printf("\n");
}
void rec(int k, int n, int v)
{
  if (n < k) return; 
  if (k==1) {
    if (n > v) return; 
    a[0] = n;
    Out();
    return;
  }
  a[k-1] = (n < v) ? n : v;
  for( ; a[k-1]>0; a[k-1]--)
      rec(k-1, n - a[k-1], a[k-1]);
}
int main(int ac, char **av)
{ int n;
   if (ac<3) return 1;
   n = atoi(av[1]); // Входные данные
   Kk = atoi(av[2]);
   if (n>M || n<Kk) return 1; // Ошибочные данные
   rec(Kk, n, n);
}
  • Вопрос задан
  • 127 просмотров
Пригласить эксперта
Ответы на вопрос 1
@fregate
Пишу, думаю
Тут больше похоже на чистый С
для этого там используется getc() в цикле или gets()

если же использовать c++, то std::cin >> input_string
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы