PASCAL問題,老大幫幫忙

時間 2023-05-23 03:21:03

1樓:匿名使用者

我這有個更簡單的,只用了迴圈。

varch:char;

n1,n2:integer;

beginn1:=o;n2:=0;

read(ch);

while ch<>'do

beginif (ch>='a')and(ch<='z')then n1:=n1+1

else if (ch>='0')and(ch<='9')then n2:=n2+1;

read(ch);

end;writeln('number of letter:',n1);

writeln('number of digit:',n2);

end.

pascal問題

2樓:網友

原本有8x+1個蘋果 第一個人拿了x+1個(x>=1)所以不超過8個人,即最後一個人拿的蘋果數不超過8蘋果總數不超過64個。

給你個框架:

while p>0 do

begininc(t);p:=p-t;

if (p<0) or (p mod 8<>0) then begin f:=false;break;end;

a[t]:=t+p div 8;

if (t>1) and (a[t-1]<>a[t]) then begin f:=false;break;end;

end;if f then break;

陣列別太大,給你個思路了,要所有**告訴我你的郵箱,給你發,不過要得獎還是自己做吧。

3樓:水藍希凌

用簡單的數學方法推了一下。

設蘋果總數為n個。

第一個人拿了 a1=1+1/8(n-1)

第二個人拿了 a2=2+1/8(n-a1)=2+1/8(7/8*n-23/8)

因為a1=a2

所以直接解兩個式子,得出的結果是n=49

驗證了一下,有7個人可以拿到蘋果,每個人拿7個排布就是。

7+0 (最後一個人拿了七個蘋果,籃子裡面就一個都沒有了)呃,我的結果就是這樣。

有什麼問題 再提好了。

pascal問題我**錯了?

4樓:匿名使用者

對的啊?

看一下截圖:

我只在後面加了句 readln

執行時:換組數:

請問你是在測評時通不過的嗎?

不知道這算不算問題:

觀察後兩組,由於你是用字串的,數字前面的0沒有考慮。

pascal疑問,請教大家:

5樓:匿名使用者

由於目前的測評軟體都是隻能根據答案對錯判斷程式正確與否,屬於所謂的「黑箱」,而你的程式顯然能輸出正確答案,因此 sky似水如煙 的說法沒有依據。

事實上,我倒認為你的演算法相當獨到,要是我的話一定會用一些字串函式,比如其他兩位都用到的 delete函式,而你的方法實在很精簡。

個人認為,**出錯的可能性可能有以下幾種:

1.測評軟體出錯。

如果是在一些測評系統上測試,不能保證它沒有卡殼的時候;

2.檔案讀取錯誤。

如果程式是以檔案的形式讀取和輸出,可能會在程式的 關聯assign 或 關閉close(output) 上出現問題,請檢查;

3.輸入資料的範圍錯誤。

問題描述】請把字串中的空格位置刪除,並輸出。

輸入:my frind

輸出:myfrind

這是一道不難的題,考察字串的處理能力,因此有可能在資料範圍上設陷阱,由於 string型別 只有255個字元的長度,可能輸入會有更長的字串,這樣系統會自動忽略。

255位以後的所有字元,使答案不完整。

改進方案:將變數st定義為 ansistring型別,即 var st:ansistring;

ansistring是一種動態的不限長度的字串型別,大部分書上都沒教,可以參考:

輸出結果:其中第四種資料是全是空格。

6樓:sky似水如煙

你這個打出的答案是一樣的 但字串中的空格沒有刪除 屬於漏洞var s:string; i:longint;

beginreadln(s);

for i:=1 to length(s) doif s[i]='then

delete (s,i,1);

write(s);

end.要刪除的話就像這樣。

希望對你有幫助。

7樓:

你換成這樣試試。

vars:string;

i:integer;

beginreadln(s);

i:=1;while i<=length do

beginif s[i]='then

begindelete(s,i,1);

i:=i-1;

end;i:=i+1;

end;writeln(s);

end.你原來的程式,應該也可以對的呀。。。

8樓:匿名使用者

這有錯嗎?不可能吧!

pascal問題

9樓:匿名使用者

首先,這是一道初學pascal很常見的題,如果用一般解法進行列舉,很容易能寫出下面**:

一隻公雞5錢,則最多有19只公雞;一隻母雞3錢,則最多有33只母雞;因此令 i 和 j 分別從1~19,1~33迴圈)

var i,j,k:integer;

beginfor i:=1 to 19 do

for j:=1 to 33 do

begink:=100-i-j; /k存的是小雞的只數;

if k mod 3<>0 then continue;

if 5*i+3*j+k div 3=100 then

writeln(i:5,j:5,k:5);

end;end.

但是如果多想一下,還能做得更好!

注意,由於x、y、z都是整數,因此上面x的範圍我也取了整數,本身是有分數的。

**寫出來是這樣:

var x:integer;

beginfor x:=26 to 28 do

writeln(4*x-100:5,200-7*x:5,3*x:5);

end.

c 或pascal的大牛幫幫忙

直接用窮搜可以的 假定n個小時的網速存在a陣列中 先求a 1 到a m 的和 再求a 2 到a m 1 的和在一直求到a n m 1 到a n 的和 從中找出最大的 最後將這個最大的去除以m 當然直接求的話太慢 應將上一輪求的和減去上一輪的第一個數 在加上這一輪的最後一個數 如 求a 2 到a m ...

婦科問題,幫幫忙,婦科問題 請線上醫生幫幫忙

三心草 哎喲我個天哪!這麼多人在這長篇大論,而且基本都是和樓主病沒什麼太大關係的理論!首先,我要告訴你的是你現在是中度宮頸糜爛的接觸性出血。這不是什麼大毛病,是很普通以及常見的 病,其次,宮頸糜爛雖然會導致分泌物粘稠,但在排卵期宮頸口仍然會有清亮明透的液體排出,並不妨礙精子上行。所以,即便你現在不 ...

遠端問題幫幫忙

在一個工作組。ip設定在一個段了嗎?還有一點就是你用mstsc時候連線地址填寫正確了?防火牆?包括系統自帶的 設定好了 3389 就是你所謂的遠端 一般不好利用容易出錯。稍微有個防火牆什麼的就出錯。不如用第三方遠控軟體來的痛快 我經常使用 比如pcanywhere 特點是和遠端桌面完全一樣。只是軟體...