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...