輸出僅由0和1組成的長度為n的字串,並且其中不可含有連續的相同

2021-03-22 01:09:59 字數 3834 閱讀 3932

1樓:匿名使用者

/*note:yourchoiceiscide*/#include"stdio.h"#definemax1000voidfun(intn,char*str)else}voidmain();intn;printf("請輸入n:

2樓:飛起來的翔時代

varf:array[-100..100]of longint;

i,n:longint;

begin

read(n);

f[0]:=2;f[1]:=2;

for i:=2 to n do f[i]:=f[i-1]+f[i-2]+f[i-3];

write(f[n]);

end.

遞推秒過

pascal 0/1字串問題

3樓:匿名使用者

該問題其實就是「走臺階」問題。由第一組開始,每一組最多隻有3步。由此可以得到dp方程:

a[n]=a[n-1]+a[n-2]+a[n-3].

基於這個分析得出的程式如下(其中的maxn,max可以自己根據情況修改):

program str01;

const max=100;

maxn=3;

var a:array[-maxn+2..max]of longint;

i,j,n:integer;

begin

readln(n);

for i:=-maxn+2 to -1 do a[i]:=0;

a[0]:=2;a[1]:=2;

for i:=2 to n do begina[i]:=a[i-maxn];

for j:=1 to maxn-1 doa[i]:=a[i]+a[i-j];

end;

writeln(a[n]);

end.

4樓:奇妙火麒麟

program str01;

vara:string;

n,i,count:integer;

procedure jinwei(n:integer);

begin

if string[n]='0' thenstring[n]:='1'

else

if n<>1 then begin

string[n]:='0';

jinwei(n-1)

endend

function sum;

vari,s:integer;

begin

s:=0;

for i := 1 to n do

s:=s+ord(string[i])-ord('0')+1;

sum:=s

end;

begin

for i := 1 to n do

string[i]:='0';

count:=0;

repeat

for i := 1 to n-2 do

if (string[i]=string[i+1]) and (string[i]=string[i+2]) and (string[i]=string[i+1]) then

break;

if i=n-2 then

inc(count);

jinwei(n)

until sum=n;

writeln(count)

end.

c++程式設計問題 回溯演算法 請大師幫忙講解 源**不要 上課沒聽懂啊!!

5樓:匿名使用者

//這題不可用回溯法來解的,因為列舉的空間太大了,有2^30次方呢,這樣會掛掉的,應該用dp

//dp[i][j][k]表示的是長度為i的串,以j,k為末尾兩位的合法串有多少種. 長度i+1可以從i的加上0或者加上1得到

#include

int dp[33][2][2]=;

int main()}}

6樓:黃國橋

這個你去你問你老師吧,一句兩句說不清楚的

離散數學 由0,1,2組成 不含有連續零的n長字串的遞推關係是什麼? 謝謝了

7樓:

s1=3

s2=8

sn=2sn-1+2sn-2

假設有一個長度為n的字串,

如果第一位是0,那麼第二位只能是1或者2,之後可以取任意無連續0的n-2個 即 2sn-2

如果第二位是1或2,那麼只要後面的n-1個無連續0 即 2sn-1兩者相加

求與包含2個連續0的n位二進位制位串的個數有關的遞推關係

8樓:手機使用者

首先考慮第n位,

若n為1,則第n 位以前的個數就有a(n-1),若n為0,則看n-1位,若為1的話,則有a(n-2);

若為0的話,則有2^(n-2);

所以遞推公式為:an=a(n-1)+a(n-2)+2^(n-2)

9樓:匿名使用者

我的思路是:若有n位二進位制位串,其中包含2個連續0,那麼這個串中,幾乎每兩個位之間都有一個「空隙」可以插入多一個位(除了兩個連續的0中間),從而產生n+1位串。那麼有n個「空隙」,每個可插入0或者1,也就是說可以有2n-1個n+1位串。

當然你也許會問連續的0中間插入0一樣,但這與在前或者後插入0一樣,並且在前或者在後插入0是完全一樣的,所以要-1 。

希望我沒有理解錯你的問題……實在太拗口了

在m個0,n個1組成的字串中,出現01或10的總次數為k的,有多少個

10樓:我不想學大霧

//題沒看太懂……先按理解的說……

先把所有連續的0或者1看成一個,由於出現01或10的總次數為k,會有一個1010101或者0101010排列的k-1個字元組成的字串。

然後再為每個位置上的0或者1分配出現個數。這裡需要用到非常淺顯的組合數學的知識。可以轉化為m個數排成一排,在中間插t個隔檔有多少種不同插法的問題。

把兩種情況列舉相加就是結果。

編譯 設計一個狀態轉換圖識別一下規則:以01結尾的由0和1組成的任意符號串,即(0│1)*01。 50

11樓:

最後你輸出了i

你儲存座標的不是mark嗎?

還有你int i定義了兩次~~把第二個for的int去掉

字元通常被視為長度為1的字串?

12樓:你猜我猜哇擦猜

不相等。

容量不同:字元常量只能是單個字元,字串常量則可以含一個或多個字元。

佔用記憶體空間大小不同:字元常量佔一個位元組的記憶體空間,字串常量佔的記憶體位元組數等於字串中位元組數加1。增加的一個位元組用來存放字元『\0』,作為字串的結束標誌。

13樓:做而論道

不是。

函式的功能是講一個由字元0和1組成的。。。。

14樓:推扣

定義一個陣列,裡面全是大小寫字母.隨機數取餘作為下標,就可以得到一個個隨機的字母了.

或者怕麻煩的話,直接把隨機數26取餘之後再加上a或者a的ascii碼值就可以得到隨機的字母了.

用0和小數點組成數。(1)組成只讀零的小數。(2)組成零都不讀的小數。(3)組

用2 8 0 0和小數點組成數。1 組成只讀一個零的小數。20.08 2 組成一個零都不讀的小數。200.8 3 組成一個最小的小數。0.028 組成只讀一個零的小數20.8810.020點28000820 20.08或80.02 200.8或800.2 2.008 1 2080 2 2800 3 ...

寫出由9 7 5 4和0組成的零也讀不出來的最小

450007900,讀作 四億五 千萬copy 七千九百。解析 bai因為4在四個整數du中最小,所以億zhi位上是4,同理千萬位dao上是5,又因為組成的九位數不讀0,所以0放在分級後的中間和末尾,最後得出九位數為450007900。中國習慣使用十進位制讀數法,並採用四位分級的法則,即從個位起,每...

10808是由幾個101和0001組成的左邊

80.808是由8個10 8個0.1和8個0.001組成的,這句話是對的.回答完畢 o 祝學習進步 數學 理工學科 學習 用逆推法 先去分母,兩邊同乘4 1 x 1 y 1 z 又因為x y z 1得4 12xzy 8zy 8xz 8xy 6 3zy 3xy 3zx 6zxy 6zxy 5zy 5x...