1樓:陽光上的橋
要想提高,得自己寫程式,讓大家看看你錯在**,看別人的程式上進比較慢的。
下面的程式除錯通過,完全滿足你的要求,迴圈裡面的writeln是輸出每一項數值的,你可以註釋掉。
program ygb;
var i,j,n,x:integer;
begini:=0;
j:=0;x:=1;
write('n=')readln(n);
while ibegini:=i+1;
if jthen j:=j+1
else begin j:=1; x:=x+2; end;
writeln(i:5,x:10);
end;writeln(x);
end.
2樓:黃走之
用數學方法。
我的方法最短。
而且是對的。
var n:integer;
beginreadln(n);
writeln(2*trunc(sqrt(n-1))+1);
end.和樓上的程式比對過,都是對的。
pascal程式
pascal程式設計!高手速進!
3樓:不死de大地
我給你提供程式的思想,但是程式你自己編。不會可以問。
根據初等數論,顯而易見的,我們可以用帶餘除法來解決這個問題。
首先,你先把錢數轉化為7進製。如(672)10=(1650)7
然後先求單方面給,就是純加法的運算,這很簡單,只需要將7進製下的數字和求出來即可。1+6+5=12。
下一步,就要用到找錢了。思想核心就在這裡。怎麼找錢呢?
我們先看看如果單看七進製一位上的數字。可以得到4是中間數,這個數無論是純加法還是找錢所需張數都一樣。即我可以給4張,也可以給你一張比當前大乙個面值的,再由你找3張。
便於理解,我舉例:錢數是11,7進製是14。不看要給的7塊,單從剩餘4塊分析,我可以給4張1塊,也可以給1張7塊,你找3張一快,錢的張數都是4。
綜上,我們推知,當單個位上的數字≤4的時候,我們可利用純加法(既然都一樣用簡單的),當數字>4的時候,我們就用找錢。
繼續開頭的例子。1650的七進製,6>4,5>4,所以應該找錢。怎麼找呢?
6進一位,所以要給一張7^3也就是343元的代替了6張49元,5進一位,所以也要給一張49元的代替5張7元。
看下面的**。
給錢 2 1
找錢 1 2
我們發現,給一張49又找一張49,抵消了;給一張7找2張7,抵消了一張。
因此,我們可以把各個位上給錢和找錢的差的絕對值加起來,2+2=3張。
我們來驗證一下。672=343*2-7*2。沒錯。
那我也說一下程式上怎麼實現這個理念呢?純加法我不說了,分離數就可以。那後面的找錢我建議你定義陣列來做,就像上面的**,兩個陣列來儲存給錢和找錢,然後求差值,有負號就消掉,再求和。
當然最後別忘了比較。
有問題可以問我。希望有追加分數,謝謝。
pascal 程式問題
4樓:匿名使用者
我們可以看random函式的定義:
random(n):表示產生[0,n)之間的隨機整數,可以直接使用random語句表示隨機產生乙個[0,1)的數。
我們知道,[表示包括,)表示不包括,所以random語句只會產生0到1但不包括1的數。
readln語句表示一直讀入資料直到遇到第乙個換行符。
我們知道在fp中,程式一執行結束就立刻退出dos螢幕,可以按alt+f5檢視dos螢幕中的內容。
像上面這種在程式的末尾加一readln,就相當於讓程式讀入一行的資料(這些資料並沒有實際用途),讓程式再等待使用者輸入一行資料後再結束執行,這樣可以起到乙個暫停程式的作用。
writeln語句是輸出一行資料,輸出完資料後程式就結束了,程式結束當然就返回頁面。
5樓:匿名使用者
應該不會隨機生成1的。
第二個我知道。
writeln是換行語句,只代表輸出結果之後,會另起一行如果是readln,意味著要讀入資料,所以可以直接看。
6樓:匿名使用者
隨機生成的是(0-899)中乙個數在加上100,保證了一定是三位數。
2.至於第二個,是你輸入乙個回車號之後螢幕才會繼續重新整理,否則會停留在列印的頁面。直到你打乙個回車號。
是直接輸出。當然不行。雖然這兩個都是換行。
pascal程式設計求急
7樓:網友
1 簡單判斷。
varscore:longint;
beginreadln(score); 讀入成績if score>85 then writeln('very good');判斷是否高於85分。
elsebegin
if score<60 then writeln('bad') 判斷是否地獄60分。
else writeln('good');
end;end.
2 由題可知,當前月具有生育能力的兔子數量等於上上個月的兔子總數,則當前月兔子總數為上月兔子數(原有)+上上月兔子數(新生)
vara,b,c,i:longint;
begina:=1; /上上個月。
b:=2; /上個月。
for i:=3 to 12 do
beginc:=a+b; /求得本月兔子數。
a:=b; /上個月變成了上上個月。
b:=c; /本月變成了山个月。
end; /1月和 2月已知,迴圈十次後本月即為十二月writeln(c); 輸出本月兔子數end.
8樓:匿名使用者
第乙個就是簡單的判斷;
第二個是斐波那契數列;
很好做的~
pascal程式設計問題
vara,b,c,d integer begin read a,b,c if a b then d b else d a if c d then d c writeln d end.vars string t,q,m,b,i,k,max longint a array 1.1000 of longi...
pascal程式設計急求
好像上面兩位都有點問題 第一題program exe1 vars real i,n,k integer begin s 0.0 readln n for i 1 to n do if odd i then s s 1 ielse s s 1 i writeln s 0 6 end.第二題progra...
PASCAL程式設計中的函式 英文原文
我來滿足一下lz的好奇心啊,順便提公升我的英語水平,這些詞的詞性不統一啊,你就將就著看吧。一般能用到的就有這些 abs x f absolute valuechr x f char dec x p decrease eof f f end of file eoln f f end of lineex...