-
varn,m,i:integer;
t:int64;
s:longint;
x:boolean
beginx:=false;
while x=false do
beginwrite('bottom number (n):');
readln(n);
write('exponent (m):');
readln(m);
t:=1;for i:=1 to m do t:=t*n;提供者。
如果 t > 2147483648,則確定結果是否超出 longint 範圍。
beginx:=false;
writeln('error!');
endelse begin
x:=true;
s:=t;write(n,'^',m,'=',s);
end;end.
-
首先,房東相信我有乙個比他們更短更好的計畫:
1:program exam;var i,x:integer;beginx:
1;for i:=1 to 99 dox:=x*99;writeln(x mod 1000);:
這個問題比較經典,我的方法也是史上最簡單的方法,簡稱篩分法。
program zhishu;
var x,n: longint;
var j:boolean;
beginwhile not eof do
beginreadln(n);
if (n=0) or (n=1) then writeln('n','o') else
beginx:=2;
j:=true;
for x:=2 to round(sqrt(n)) doif n mod x = 0 then j:=false;
if j=true then writeln('yes') else writeln ('no');
end;end;
end.瞭望塔領主採納了。
麻煩。 採用。 ·.
-
你是辰渠信,這個問題資料太大了,精度很高。 程式:程式P1036; var i,j,k,m,n:
longint; a,b,c:array[1..25] of longint; x,y,l:
int64; begin readln(x,y); if x mod 2=1 then inc(x); if y mod 2=1 then dec(y); if x>y then writeln('0') else begin l:=(y-x) div 2+1;x:=x+y;y:
l;m:=0;n:=0; if x mod 2=0 then x:
x div 2 else y:=y div 2; repeat inc(m); a[m]:=x mod 10;x:
x div 10; until x=0; repeat inc(n); b[n]:=y mod 10;y:=y div 10; until y=0; for i:
1 to m do for j:=1 to n do c[i+j-1]:=c[i+j-1]+a[i]*b[j]; for j:
1 to n+m do begin c[j+1]:=c[j+1]+c[j] div 10; c[j]:=c[j] mod 10; end; l:
m+n; while c[l]=0 do dec(l); for i:=l downto 1 do write(c[i]);end; end.
-
樓上出錯的原因是longint只有10位,範圍不夠。 你嘗試使用實數,並在輸出時寫 write(s,0,0); 如果數字太大並且輸出了科學記數法,唯一的方法是花一些時間來寫高精度。
-
房東你好。
很幸運能看到你的問題。
我幫不了你!
可能是你問的問題有點專業。 或者其他人沒有遇到或接觸過您的問題,因此他們無法幫助您。 建議你去相關論壇尋求幫助,那裡通常人比較多,熱情比較高,說不定能幫你快速解決問題。
祝你好運。 最後,祝願您每一天都幸福、健康、幸福!
-
純模擬上線,2013年7月xx命中程式應該沒對,但是你的n範圍是多少,還有一種情況就是——不管m多少,都達不到要求,這個時候的輸出是什麼?
-
var a:array [1..1000000] of longint;b:array [1..1000000] of boolean;
i,j,n,m,s:longint;
beginreadln(n,m);for i:=2 to m do begin a[i]:=i;b[i]:=true;end;i:=1;
repeat
i:=i+1;if b[i]=true then for j:=2 to m div i do b[j*i]:=false;
until i=m;
for i:=2 to m do if (b[i]=true)and(a[i]>=n) then s:=s+1;writeln(s);
end.請問李哲,你是在奉化上幹的嗎? 換句話說,如果是,那麼磨土豆是正確的。
82872 dengke 1153 accepted 5416k 61ms pascal 2009-11-06 14:09:18
-
你只能使用公尺勒·拉賓素數測試(盧導記得在《櫻花幻想演算法的藝術》中見過它)。
根據大量統計,如果滿足(n-1)mod n=1,則脊柱燃燒的概率為素數。
這裡有乙個C++,但想法應該是一樣的。
-
使用篩選方法是否也超時?
-
您也可以在推送函式中新增一些方法來執行,例如:
view plaincopy
var visitor_id;
function()
-
遞迴 bz:=true 後,bz 可能會在以後的結果中再次賦值為 false,因此會發生錯誤。 修改如下,如果看不懂,可以私信詢問。
vara:array[1..10] of longint;
b:array[1..10] of longint;
n,m,i:longint;
procedure sum(n,m:longint);
beginif m=0 then begin
writeln('yes');
halt;endelse
beginif n=1 then exit elsebegin
sum(n-1,m-a[n]);
sum(n-1,m);
end;end;
end;begin
readln(n);
for i:=1 to n do
read(a[i]);
readln(m);
sum(n,m);
writeln('no');
end.
只需使用陣列即可。
var a:array[1..1000]of longint; >>>More
先選擇顯示卡,大部分顯示卡都採用雙介面設計連線顯示器24針數碼訊號介面和15針模擬訊號介面,還有乙個HDMI輸出輸入介面,連線當前顯示器時,可以根據需要購買介面卡。
我不明白你說的這種特殊情況是什麼意思,如果你的意思是無效的輸入,比如輸入乙個字母,那麼在 int a = ; >>>More
陣列的大小是在定義陣列時定義的。 我明白你的意思了:先輸入要統計的學生人數n,這也是要定義乙個大小為n的陣列,一種懶惰的方法是你預定義乙個大陣列,遠遠超出了你能用的極限,比如,你可以統計100人的成績,你可以預先定義乙個大小為1000的陣列來儲存成績, 這樣你就可以使用for迴圈。 >>>More