1+1+1
1+2
На занятии задачу так и не решили. Пошел домой, и как это часто бывыет, понял, в чем была наша ошибка. Пришел домой, набросал программу на С.
Вот ее текст.
- Код: Выделить всё
#include <stdio.h>
void sum(int,int,int);
//массив для хранения последовательностей
int ar[40];
int k;
void main()
{
int j,n=7;
for(j=1; j<n; j++)
{
k=0;
sum(n,j,0);
}
return;
}
void sum(int n,int a, int s)
{
int i,m;
s=s+a;
ar[k]=a;
k++; //на следующий элемент массива
for(i=a; i<n; i++)
{
if(s==n)
{
//вывести последовательность
for(m=0; m<k; m++)
{
printf("%d ",ar[m]);
}
printf("\n"); //к следующей строке на экране
break;
}
if(s>n)
{
break;
}
if(s<n)
{
sum(n,i,s);
}
}
k--;
}
Есть ли, по вашему мнению, другие решения?