English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

題目:(1)可以查詢費氏數列第n項的值,費氏數列的第1項及第2項

均 為1,第n項為第n-2加第n-1項的和。
(2)程式需加入錯誤的處理

(3)若查詢成功,依所查詢的項數附帶印出規則圖形。



上面是題目,拜託幫我寫這個程式 很急..

1/7號就要交了... 拜託了!! 謝謝 ^^

2007-01-04 15:48:00 · 2 個解答 · 發問者 ? 1 in 電腦與網際網路 程式設計

我的軟體是 C#2005
(急)
謝謝你們了!!  ︿︿ 

2007-01-06 07:25:59 · update #1

2 個解答

你該不會是阿安的網友叫做梓吧= =(如果不是請不用理會這句話)
話說我朋友阿安叫我幫他的網友寫程式,我正在期末考,其他事情都不用作了,還好我放三天才考試
(以上題外話)


#include
#define Fibonacci F

int calculate(int a);

int main(void)
{
int x,s;
int a,b,c;

printf("此程式在於幫助使用者求得費氏數列中第n項的值\n");
printf("所謂Fibonacci Sequence簡單列出規則如下:\n");
printf("1,1,2,3,5,8,13,21...\n");
printf("此數列規則為第n項為n-2和n-1項之合,而n大於等於3\n");
printf("現在請您輸入一個數字來求得您所想得知的項數值\n");

scanf("%d",&x);

while(!(x>2)){
printf("請輸入大於等於3的整數\n");
printf("請再次輸入一個數值\n");
scanf("%d",&x);
}

if(x>2){
calculate(x);
}
printf("您所希望得到的項數值為%d\n",calculate(x));

s=a=c=x;
b=0;
while(a!=0){
for(a;a>=1;a--){
for(b;b printf(" ");
}
printf("HH");
}
b=0;
a=c=--s;
printf("\n");
}

printf("\n");
return 0;
}

int calculate(int a)
{
int F[200000]={0};//雖然宣告大矩陣,可是僅能算到第46項
int i;
F[0]=1;//數列的第一項
F[1]=1;//數列的第二項

for(i=2;i F[i]=F[i-1]+F[i-2];
}
return F[i-1];//因為上面的for執行完後i會等於a,於是減一才是所求
}

2007-01-05 23:41:02 補充:
關於程式需加入錯誤的處理部分
我只對數字做處理,沒有抓取字元檢查
應該無所謂吧??恩~以上

2007-01-05 23:42:44 補充:
printf("此數列規則為第n項為n-2和n-1項之合,而n大於等於3n");
這句的合應該是和
以上

2007-01-05 23:44:24 補充:
有些printf裡面的n其實是換行的(\n),因為網頁語法的問題所以這邊沒有顯示出來
記得自己加上去喔!!!

2007-01-05 23:44:41 補充:
( )裡面是右斜線n

2007-01-05 18:39:38 · answer #1 · answered by Nkyoung 2 · 0 0

Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
Dim n As Integer, a As Integer, b As Integer
Dim buf As String
a = 1: b = 1
Do
k = 1
buf = InputBox("請輸入欲查詢的項數: ")
If Not IsNumeric(buf) Then
MsgBox "項數必須是整數啦."
k = 0
ElseIf (Val(buf) < 3) Then
MsgBox "@!!!項數至少為3以上,重來啦!"
k = 0
End If
Loop While k = 0
n = Val(buf)
For i = 3 To n
k = a + b
a = b
b = k
Next i
Print 費氏數列第 " & n & " 項 = " & k
If (n > 9) Then n = 9
For i = 1 To n
buf = ""
For j = 1 To n
buf = buf & Format(i * j, "@@") & " "
Next j
Print buf
Next i
End Sub
如果有問題, 請來函討論. 不然, 我可能會錯失你再補充的疑點.

2007-01-05 08:24:15 · answer #2 · answered by JJ 7 · 0 0

fedest.com, questions and answers