#include<stdio.h>
#include<conio.h>
#include<string.h>
char *createP(int);
int main()
{
int n,i;
char str[100];
printf("int n = ");
scanf("%d",&n);
printf("string str = ");
scanf("%s",&str);
if(n>40)
return -1;
for(i=0;i<strlen(str);i++)
if(str[i]=='X' || str[i]=='Y' || str[i]=='Z')
continue;
else
return -1;
char *P;
P=createP(n);
printf("The generated string is = %s",P);
return 0;
}
char *createP(int n)
{
if(n==0)
return "X";
if(n==1)
return "Y";
if(n==2)
return "Z";
if(n>2)
return strcat(createP(n-2),createP(n-3));
}
次の質問の文字列を作成しようとしています:
P(0)='X'
P(1)='Y'
P(2)='Z'
P(n)= P(n-2)+ P(n-3)、n> 2ここで、+は文字列の連結を示します。この問題に再帰(非常に明白に見えます)を使用していますが、.exeが機能していません。