Pascal 被程式設計為輸入 n 和 m,輸出 n 為 m 的冪,答案不會超過longint 範圍

發布 科技 2024-04-16
11個回答
  1. 匿名使用者2024-02-07

    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.

  2. 匿名使用者2024-02-06

    首先,房東相信我有乙個比他們更短更好的計畫:

    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.瞭望塔領主採納了。

    麻煩。 採用。 ·.

  3. 匿名使用者2024-02-05

    你是辰渠信,這個問題資料太大了,精度很高。 程式:程式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.

  4. 匿名使用者2024-02-04

    樓上出錯的原因是longint只有10位,範圍不夠。 你嘗試使用實數,並在輸出時寫 write(s,0,0); 如果數字太大並且輸出了科學記數法,唯一的方法是花一些時間來寫高精度。

  5. 匿名使用者2024-02-03

    房東你好。

    很幸運能看到你的問題。

    我幫不了你!

    可能是你問的問題有點專業。 或者其他人沒有遇到或接觸過您的問題,因此他們無法幫助您。 建議你去相關論壇尋求幫助,那裡通常人比較多,熱情比較高,說不定能幫你快速解決問題。

    祝你好運。 最後,祝願您每一天都幸福、健康、幸福!

  6. 匿名使用者2024-02-02

    純模擬上線,2013年7月xx命中程式應該沒對,但是你的n範圍是多少,還有一種情況就是——不管m多少,都達不到要求,這個時候的輸出是什麼?

  7. 匿名使用者2024-02-01

    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

  8. 匿名使用者2024-01-31

    你只能使用公尺勒·拉賓素數測試(盧導記得在《櫻花幻想演算法的藝術》中見過它)。

    根據大量統計,如果滿足(n-1)mod n=1,則脊柱燃燒的概率為素數。

    這裡有乙個C++,但想法應該是一樣的。

  9. 匿名使用者2024-01-30

    使用篩選方法是否也超時?

  10. 匿名使用者2024-01-29

    您也可以在推送函式中新增一些方法來執行,例如:

    view plaincopy

    var visitor_id;

    function()

  11. 匿名使用者2024-01-28

    遞迴 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.

相關回答
5個回答2024-04-16

只需使用陣列即可。

var a:array[1..1000]of longint; >>>More

19個回答2024-04-16

先選擇顯示卡,大部分顯示卡都採用雙介面設計連線顯示器24針數碼訊號介面和15針模擬訊號介面,還有乙個HDMI輸出輸入介面,連線當前顯示器時,可以根據需要購買介面卡。

12個回答2024-04-16

我不明白你說的這種特殊情況是什麼意思,如果你的意思是無效的輸入,比如輸入乙個字母,那麼在 int a = ; >>>More

5個回答2024-04-16

MCU,所有IO口都可以作為輸入和輸出使用,但不能同時使用 >>>More

3個回答2024-04-16

陣列的大小是在定義陣列時定義的。 我明白你的意思了:先輸入要統計的學生人數n,這也是要定義乙個大小為n的陣列,一種懶惰的方法是你預定義乙個大陣列,遠遠超出了你能用的極限,比如,你可以統計100人的成績,你可以預先定義乙個大小為1000的陣列來儲存成績, 這樣你就可以使用for迴圈。 >>>More