Re: [問題] 0與1的排列組合
→
09/26 03:53,
09/26 03:53
→
09/26 03:54,
09/26 03:54
tony大的方式我有想過
#include <stdio.h>
#include <stdlib.h>
void recursive(char *ch, int n, int i, char bit);
int count = 0;
int main()
{
char *ch;
int n;
scanf("%d", &n);
ch = (char* )malloc(sizeof(char)*n);
recursive(ch, n, n, '0');
recursive(ch, n, n, '1');
printf("%d\n", count);
return 0 ;
}
void recursive(char *str, int n, int i, char bit)
{
if ( i == 0)
{
printf("%s\n", str);
count++;
}
else
{
*(str +n-i) = bit;
recursive(str, n, i-1, '0');
recursive(str, n, i-1, '1');
}
}
這樣有兩個問題(或三個)
第一個
當要印出來的時候else裡有兩個recursive的呼叫
所以每一種結果都會印兩次
我不知道怎麼修掉=.=
再來的問題就是
遞迴的精神不就是main裡面叫一次遞迴就可以直接解決問題的嗎?
我用了兩次(0、1)
好像不對......
另外一個問題就是我怕老師會說我這不是用排列的
而是用產生的
下個禮拜還要去問助教可不可以...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.63.167
推
09/26 11:03, , 1F
09/26 11:03, 1F
→
09/26 11:07, , 2F
09/26 11:07, 2F
→
09/26 11:08, , 3F
09/26 11:08, 3F
→
09/26 13:13, , 4F
09/26 13:13, 4F
→
09/26 13:43, , 5F
09/26 13:43, 5F
→
09/26 13:43, , 6F
09/26 13:43, 6F
討論串 (同標題文章)