讨论 / 用了两种递归,思想一样为什么结果不一样呢?
MQ 2017-08-18 21:19:58
点我顶贴 收藏 删除
#include<iostream>

#include<cstdio>

#define LastIndex LI

using namespace std;

static string AlpNum;

int small,big,wide;

bool judge(int LastIndex)

{

if(LI<0)

return 0;

AlpNum[LI]++;

if(AlpNum[LI]-'a'>big-1-(wide-LI-1))

{

if(judge(LI-1))

AlpNum[LI]=AlpNum[LI-1]+1;

else

return 0;

}

else

return 1;

}

int main()

{

cin>>small>>big>>wide;

getchar();

getline(cin,AlpNum);

for( int count=5;count>0;count--)

{

if(judge(wide-1))

cout<<AlpNum<<endl;

}

}

#1 MQ@2017-08-18 21:20:52
回复 删除
上面没输出

下面的用C通过了

#include <cstdio>

char a[30];

int s, t, w;

int add(int i)

{

if(i < 0)

return 0;

a[i] = a[i] + 1;

if(a[i] - 96 > t - (w - i) + 1)

{

if(add(i - 1) == 0)

return 0;

a[i] = a[i-1] + 1;

}

return 1;

}

int main()

{

int i;

scanf("%d %d %d", &s, &t, &w);

scanf("%s", a);

for(i = 0 ; i < 5 ; i++)

{

if(add(w - 1))

printf("%s\n", a);

}

return 0;

}

查看更多回复
提交回复