Страница 1 из 1
Числа
Добавлено: 06 май 2010, 20:34
topo
Помагите пожалуста
Напечатать по одному разу все последовательности длины n, составленные из чисел 1..k (их количество равно k в степени n)
Надо написать програму на С(С++)
Re: Числа
Добавлено: 13 май 2010, 09:37
Хыиуду
Алгоритм примерно такой: создать массив A[n], заполнить единицами
Потом выполнять примерно следующее в бесконечном цикле
i=n-1;
while (A==k)
i-=1; //Находим первое число, не равное k
if (i==-1) break;
A+=1;
for(j=i+1; j<n; j++)
A[j]=1;
И выводим массив на экран или в файл.
Re: Числа
Добавлено: 13 май 2010, 10:58
rrrFer
Код: Выделить всё
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int f(int sn, int n, int k, int *a){
int t;
if(sn==1)
a=new int[n];
if(n<sn){
for(t=0;t<n;t++)
cout<<a[t];
cout<<endl;
return 0;
}
for(t=1;t<=k;t++){
a[sn-1]=t;
f(sn+1,n,k,a);
}
if(sn==1)
delete []a;
return 0;
}
int main(){
int n,k;
cout<<"n: "; cin>>n;
cout<<"k: "; cin>>k;
f(1,n,k,0);
cout<<"press <enter> to exit"<<endl;
cin.get(),cin.get();
return 0;
}