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 特點是和遠端桌面完全一樣。只是軟體...