-
100 的 5 次方 longint 不能表示,可以與 int64 或 qwordint64:-9223372036854775808 一起使用。9223372036854775807
qword:0..184467440703709551615 )。
我不知道你的意思,如果要列印中間的所有數字,陣列無法儲存,只能直接列印(建議將緩衝區設定得更大),需要很長時間,總檔案大小至少為(8位元組*100到5次方1000 1000 1000=80g)。
樓上不開玩笑,算力肯定沒問題,但輸出占用時間。
如果要求和,請使用高斯求和公式,這很簡單,沒什麼好說的。
-
你是什麼意思? 求和,還是輸出所有整數?
這不太可能是......如果全部輸出帕斯卡是教學語言,在算術上沒有那麼強。
如果必須這樣做,為什麼不使用 for 語句呢?
-
謝謝樓上的提醒!
我沒有使用 trunc 和 round 語句(超出長整數的範圍),並且忘記嘗試使用最基本的......
var a,b,c,d,o:real;
beginc:=1;
a:=1;repeat
a:=a+1;
d:=c;b:=1;
o:=d;repeat
d:=d*o;
b:=b+1;
until b=5;
writeln(d:0:0);readln;
c:=c+1;
until a=100;
readln;
end.
-
樓上改成writeln(d:0:0)不缺。
-
10(10)你怎樣表達呢?
它只能用雙精度+科學記數法表示。
-
方法有很多,下面列舉了3種,乙個for迴圈做,乙個while迴圈做,乙個重複迴圈做,因為標題要求5或7的倍數,那我就寫成5的倍數,房東自己改5改7後,**如下:
1 for 迴圈。
vari,ans:longint;
beginans:=0;
for i:=1 to 100 do
if i mod 5=0 then ans:=ans+i;
writeln(ans);
end.2 while 迴圈。
vari,ans:longint;
begini:=0;ans:=0;
while i<=100 do begini:=i+5;
ans:=ans+i;
end;writeln(ans);
end.3 重複迴圈。
vari,ans:longint;
begini:=5;ans:=0;
repeat
ans:=ans+i;
i:=i+5;
until i>100;
writeln(ans);
end.
-
var i,s:longint;
beginfor i:=1 to 100 doif (i mod 5=0)or(i mod 7=0) then s:=s+i;
writeln(s);
end.標準程式,輸出是1-100中5的倍數,還有7的倍數,如果還是不明白或者我不注意細節,私聊來找我,我非常願意回答。
-
篩分法可用於查詢質數,程式為:
program zhishu;
constm = 2;
n = 100;
vara:array[m..n] of integer;
b: array[1..200] of integer;
k, i, j: integer;
beginfor i:=m to n do
a[i] := 1;
k := 1;
for i:=m to n do beginif a[i] = 1 then beginj := i + i;
b[k] := i;
k := k + 1;
while j <= n do begina[j] := 0;
j := j + i;
end;end;
end;for i:=1 to n do
if b[i] <0 then write(b[i], ' ');
readln;
end.
-
篩法是一種查詢所有不超過自然數 n(n 1) 的素數的方法。 據說它是由古希臘的埃拉託色尼(約西元前 274 年 194 年)發明的,也被稱為埃拉託色尼篩。
具體方法是:先將n個自然數按順序排列。 1 不是質數,也不是合數,應該劃掉。
第二個數字 2 作為質數保留,2 之後所有能被 2 整除的數字都被劃掉。 2 之後未劃掉的第乙個數字是 3,留下 3,然後劃掉 3 後所有可被 3 整除的數字。 3 後第乙個未交叉的數字是 5,留下 5,然後劃掉 5 後所有可被 5 整除的數字。
如果繼續這樣做,您將過濾掉所有不超過 n 的合數,留下所有不超過 n 的質數。 因為希臘人把數字寫在蠟板上,每劃掉乙個數字,就在上面寫上小點,找素數的工作完成後,這些多點就像乙個篩子,所以他們把埃拉託色尼的方法稱為“埃拉託色尼篩”,簡稱“篩子法”。 (另一種解釋是,數字是寫在紙莎草紙上的,每劃掉乙個數字,就把數字挖出來,當找到質數完成時,許多小孔就像乙個篩子。
例如,使用 sieve 方法查詢最多 30 的所有素數:
有 10 個素數 2、3、5、7、11、13、17、19、23、29 不超過 30。
程式:常量 n=100;
var a:array[2..n] of boolean;
i,j:longint;
beginfillchar(a,sizeof(a),true);
for i:=2 to n do
if a[i] then
beginfor j:=2 to n div i do
a[j*i]:=false;
end;for i:=2 to n do if a[i] then writeln(i);
end.
-
<1> 先刪除 1。
2> 去掉 2 的倍數。
3> 刪除 3 的倍數。 …
刪除 i 的倍數。 …
一直到根數 A。
** 如下:vara:array[1..300] of integer;
i,j,k:integer;
beginfor i:=2 to 100 do a[i]:=i;
對於 i:=2 到 sqrt(100) doif a[i]<>0 然後(提高效率)開始
j:=1;repeat
j:=j+1;
k:=i*j;
a[k]:=0;
until k>100;(標記為 i 的倍數)結束;
for i:=2 to 100 do
if a[i]<>0 then writeln(i);
end.純篩選方法。
-
首先,有兩個筆誤:
c:=0 而不是 c:=o;
b:=i mod a;而不是以冒號結尾。
邏輯錯誤:c是否小於或等於2的判斷應該放在內迴圈之外,c的初始化也應該放在內部迴圈之外。 (b 不需要初始化)。
更改後:
program ex8;
vari,a,b,c,d:integer;
beginfor i:=1 to 100 do beginc:=0;
for a:=1 to i dobegin
b:=i mod a;
if b=0
then c:=c+1;
end;if c<=2
then writeln('i=',i);
end;end.
-
完整數:因子之和(除自身外)等於程式 cs4 本身的數;
var i,n,s:integer;
begins:=0;
for n:=2 to 100 do
beginfor i:=1 to n-1 do
beginif n mod i =0 then s:=s+i;
end;if s=n then writeln(n);
s:=0;end;
end.
-
完美數被定義為所有因素(除自身外)之和等於自身的數字,稱為完整數。
f(x)=cos³x+sin³x,f'(x)=3cos²x(-sinx)+3sin²x(cosx)=3sinxcosx(sinx-cosx),f'(x)=0,即 x=k+2,或 x=k+4,kz,x (2k,4+2k),sinx>0,cosx>0,sinx-cosx<0,所以 f'(x) <0, f(x) 單調遞減; >>>More
44 次方是 22 次方,即 11 次方,等於 10 次方乘以。 它乘以 5 的冪,等於 4 的冪乘以 2 的冪,即 6 的冪。 也就是說,到3次方,等於2次方乘以。 >>>More
1. 如果 (a b) 的 2 次方 = 5 且 ab = 1,則 a-b = (1)。 >>>More
解:a=3 的 55 次方 = (3 的五次方)到 11 次方。 >>>More