Вопрос в том, чтобы сгенерировать все пароли из заданного набора символов или массива! Кто-нибудь просто дайте мне знать, где я ошибся?
#include <iostream> #include<string> using namespace std; void func(char a[],string s,int st_ind,int length_of_string) { if(s.length()==length_of_string) { cout<<s<<" "; return; } if(s.length()<length_of_string="" &&="" st_ind<length_of_string) { func(a,s+a[st_ind],st_ind,length_of_string); func(a,s+a[st_ind],st_ind+1,length_of_string); func(a,s,st_ind+1,length_of_string); } } int main() { int n; cin>>n; char a[n]; for(int i=0;i<n;i++) { cin>>a[i]; } for(int i=1;i<=n;i++) { string s; func(a,s,0,i); } return 0; }
Что я уже пробовал:
Я чувствую, что это правильное решение, но вывод не отображается.
Ответ должен быть " a b aa ab ba bb ", когда есть вход n = 2 и массив символов [a, b].
Patrice T
Что такое ="" в вашем коде ?
Richard MacCutchan
Я думаю, что редактор/форматер неправильно читает некоторые управляющие символы.
Stefan_Lang
Когда я исправляю второй оператор if в func() (что Патрис упоминал выше) и заменяю операторы cin статическими назначениями (n=2; и a[i] = 'a'+i; соответственно), я действительно получаю вывод:
А А АА АА АБ АБ АБ АБ ББ ББ
Если вы вообще не получаете вывода, вы можете проверить свой ввод - это единственное отличие в моей версии.
Конечно, вывод не правильный, но я хоть что-то получаю.
P.S.: Я изменил код обратно, чтобы использовать исходные входные операторы, и он тоже работает. Обратите внимание, что вам нужно подтвердить каждый ввод символов с помощью отдельной клавиши [enter].
Raghurss
- Да! Я сожалею об этом.
Raghurss
о! да, я попробую это сделать. ваш результат, по крайней мере, лучше, чем мое ничто. спасибо