幫忙翻譯下int f1=0,f2=1,flag=0;while(flag==0){ f1=f1+f2;f2=f2+f1;if(t>=f1&&t<=f2){ flag=1;return f2;}}}/* 程序設計題:求Fibonacci數列中大于t的最小一個數結果由函數JSValue返回,F(n)定義為F(0)=0,F(1)=1,F(n)=F(n-1)+ F(n-2),分別計算出當t=1000和3000時的結果*/#include<stdio.h>int JSValue(int t){ /*考生在這里添加代碼*/int f1=0,f2=1,flag=0;while(flag==0){ f1=f1+f2;f2=f2+f1;if(t>=f1&&t<=f2){ flag=1;return f2;}}}void main(){ FILE *p;p=fopen(“design.dat”,”w”);fprintf(p,”%d,%d”, JSValue(1000),JSValue(3000));fclose(p);}
2 回答

Smart貓小萌
TA貢獻1911條經驗 獲得超7個贊
這是while語句;
形式是:
while(一個值
或
一個表達式)//*如果這個值,或表達式的值不是0,那么執行下面程序
{執行的任務;}
如果表達式的值是0,那么停止循環*//
這是一個循環如果flag是0那么停止循環,如果flag非0繼續循環;

梵蒂岡之花
TA貢獻1900條經驗 獲得超5個贊
flag 是 一個標記變量
if(t>=f1&&t<=f2)如果這條語句沒有符合條件,那么循環就可以繼續下去,即運算F(n)=F(n-1)+ F(n-2).
if(t>=f1&&t<=f2)符合條件,那么flag = 1.則跳出循環.因為已經找到符合條件的f2了.
其實完全沒有必要flag.return 語句直接控制跳出這個函數了
int JSValue(int t)
{ /*考生在這里添加代碼*/
int f1=0,f2=1;
while(1)
{ f1=f1+f2;
f2=f2+f1;
if(t>=f1&&t<=f2)
{
return f2;}
}
}
- 2 回答
- 0 關注
- 726 瀏覽
相關問題推薦
添加回答
舉報
0/150
提交
取消