-
有兩種方法可以做到這一點:
第一種型別:程式考試17;
var a,b:integer;
beginwrite('a,b=');
readln(a,b);
a:=a+b;
b:=a-b;
a:=a-b;
end.第二個(在按位運算中使用異或運算);
program exam17;
var a,b:integer;
beginwrite('a,b=');
readln(a,b);
a:=a xor b;
b:=a xor b;
a:=a xor b;
運算通常用於否定二進位的特定位,因為 XOR 可以定義如下:0 和 1 保持不變或 0,XOR 1 被否定。
也就是說,對於二進位數的每個位:
1 xor 1=0
1 xor 0=1
0 xor 1=1
0 xor 0=0
-
它可以在沒有中間變數幫助的情況下進行交換,但輸入的數量不要太大,而且這種技術不會導致生產力的提高,所以希望你在學習計算機時不要誤入歧途。
以下是你要找的東西::
program exam17;
var a,b: integer;
beginwrite('a,b=');
readln(a,b);
a:=a+b;
b:=a-b;
a:=a-b;
writeln('a=',a,',b=',b);
end.上面的程式是在 delphi 下執行的,執行示例如下:
D:臨時檔案 DCC32
borland delphi versioncopyright (c) 1983,2002 borland software corporation
13 lines, seconds, 11148 bytes code, 1805 bytes data.
d:臨時檔案
a,b=2 3
a=3,b=2
d:臨時檔案
-
a:=a-b;(a=a-b b=b)
b:=a+b;(a=a-b b=a)
a:=b-a;(a=b b=a)
括號左邊是變數 a 和 b 的中間位置,右邊是變數的值。
-
大家都沒事,遇到問題就什麼都不在乎,一下子全部複製,複製到最後有意思嗎???
-
1.看大象的收藏,其實不是,而是有點畫素數的篩分法。 首先構建結構:
tman = record
rel: byte;
ref: byte;
end;2.表示成員的人際關係,初始時間為man[i]。rel = i;它是引用計數,最後使用。
從 1 開始,遍歷與關係中與 1 有關係的所有成員,然後將該成員設定為 1。 例如,在 2 之後遍歷 man[2]rel 不再是 2,而是變成 1,然後 rel 將被感染。
如果是這樣,那麼 2 將繼續將基因從 1 傳遞到 4,從而形成人類[4]。rel=man[2].rel=man[1].
rel=1;一直持續到 n 的末尾。
3. 程式如下:
program project1;
typetman = record
rel: byte;
ref: byte;
end;var
man: array[1..100] of tman;
rel: array[1..200, 0..1] of byte;
n, k, i, j: integer;
beginreadln(n, k);
for i := 1 to k do
readln(rel[i, 0], rel[i, 1]);
for i := 1 to n do
beginman[i].rel := i;
man[i].ref := 0;
end;for i := 1 to n dofor j := 1 to k do
beginif rel[j, 0] = i thenman[rel[j, 1]].rel := man[i].
relelse if rel[j, 1] = i thenman[rel[j, 0]].rel := man[i].
rel;end;for i := 1 to n doinc(man[man[i].rel].ref);
j := 0;
k := 0;
for i := 1 to n do
beginif man[i].ref > 0 theninc(j);
if man[i].ref > k thenk := man[i].ref;
end;writeln('---', ##10, j, ' ', k);
readln;
end.
-
我會給你程式的想法,但你自己編造程式。 不,你不能。
根據初等數論,很明顯,我們可以用餘數除法來解決這個問題。
首先,您將資金轉換為基礎。 例如,(672)10=(1650)7
然後先要求單邊給,這是純加法運算,非常簡單,只需要找到以 7 為基數系統下的數字之和即可。 1+6+5=12。
下一步是找錢。 這個想法的核心就在這裡。 你怎麼找錢?
讓我們單獨看一下十進位數字上的數字。 可以得到4是中間數,這個數字無論是純加法還是找錢所需的張數都是一樣的。 也就是說,我可以給4張牌,或者我可以給你一張比現在的面值大的牌,然後你可以找到3張牌。
為了便於理解,我舉個例子:錢數是 11,底數是 7 是 14。 別看7塊給,只從剩下的4塊分析,我可以給4塊1塊,或者我可以給1塊7塊,你找3塊和快,錢的數是4塊。
綜上所述,我們可以推斷出,當數字 4 為個位數時,我們可以使用純加法(因為我們都使用相同的簡單方法),而當使用數字 4 時,我們可以用來找錢。
繼續開頭的示例。 1650、6>4、5>4的七壘制,所以應該找錢。 如何找到它?
6進一處,所以要給7 3也就是343元,而不是6塊49元,5進一處,所以你也應該給49塊,而不是5塊7元。
請參閱下面的**。
捐錢 2 1
找錢 1 2
我們發現,給出 49 並找到 49 抵消了它; 給出乙個 7 以找到 2 個 7 的偏移量。
因此,我們可以將每個位元中給錢和找錢之間的差值相加,2+2=3 張牌。
讓我們來驗證一下。 672=343*2-7*2。沒錯。
那麼,讓我也談談如何以程式設計方式實現這個概念? 我不會談論純粹的加法,但分離數就可以了。 我建議你定義乙個陣列來做,就像上面的**一樣,兩個陣列存錢找錢,然後找差,如果有負號就去掉它,然後求和。
當然,不要忘記在最後進行比較。
你可以問我任何問題。 我希望會有額外的積分,謝謝。
-
直到晚上 9 點現在你想要它嗎?
-
問題 1 dp
問題 2:USACO 月度競賽。
第三個問題是貪婪。
-
您好,這個問題是這樣想的:
完美數是這個數字除自身之外的除數之和,例如,6 的除數有 ,1+2+3=6,所以 6 是乙個完美數。
在這個問題中,我們首先列舉從1到10000的所有數字,逐個找到數字的所有除數,將它們相加,最後看看約束的總和是否等於這個數字。
程式如下:程式lxc;
vari,j,k:integer;
開始主程式。
對於 i:=1 到 10000,請列舉 1 到 10000 的 i
開始一一處理 10,000 個數字。
k:=0;k 是除數之和,初始化為 0。
對於 j:=1 到 i div2 do 由於乙個數的除數必須小於這個數字,並且它必須小於或等於這個數字的一半,現在有必要列舉從 1 到 i div 2 的所有小於 i 的數字。
如果 i mod j = 0,則 i mod j=0,這意味著 j 可以被 i 整除,表明這個 j 是 i 的除數。
k:=k+j;因此,將 k 新增到這個除數中。
if k=i then writeln(i);最後,在找到所有除數並將它們的所有值相加到 k 後,當 k 和 i 相等時,i 是乙個完美數,則輸出 i
end;列舉完成。
end.收工。
執行結果:628
謝謝你,祝你好運!
-
乙個完整的數字是乙個數字,其中數字的因子之和等於它自己的數字。
var i,j,s:integer;
beginfor i:=1 to 10000 do
begins:=0;
for j:=1 to i div 2 doif i mod j =0 then s:=s+j;
if s=i then writeln(i);
end;end.
-
vari,s,j:longint;定義開始
對於 i:=3 到 10000,每個數字執行 3 到 10000。
beginfor j:=2 to i div 2 do if i mod j=0 then if it is the factor s:=s+j; 總結。
如果 s=i,則最終確定如果因子之和等於自身,則輸出 writeln(i);
s:=0;計數重置為 0
end;end.
-
我們可以看一下隨機函式的定義:
random(n):表示隨機整數的生成在[0,n]之間,可以直接用random語句表示[0,1]個數的隨機生成。
我們知道 [means include,) 表示不包括在內,所以隨機語句只會產生乙個從 0 到 1 的數字,而不是 1。
readln 語句指示在遇到第乙個換行符之前讀取資料。
我們知道,在FP中,程式一旦完成執行就會退出DOS螢幕,您可以按Alt + F5檢視DOS螢幕的內容。
像上面一樣,在程式的末尾新增乙個 readln,相當於讓程式讀取一行資料(沒有實際用處),然後等待使用者輸入一行資料後再結束執行,這可以起到暫停程式的作用。
writeln 語句是輸出一行資料,輸出完資料後,程式就結束了,當然程式結束後也會返回頁面。
-
它不應該是隨機的 1。
第二個我知道。
writeln 是乙個換行語句,只表示輸出結果後會開始換行,如果是 readln,則表示會讀取資料,因此可以直接讀取。
-
隨機生成的數字 (0-899) 與 100 相加,保證它必須是三位數。
2.至於第二個,在您輸入回車號後,螢幕將繼續重新整理,否則它將停留在列印頁面上。 直到您呼叫回車。
是直接輸出。 當然不是。 雖然這兩個都是換行符。
-
1 簡單的判斷。
varscore:longint;
beginreadln(score);如果 score>85 則 writeln('very good');判斷是否高於85分。
elsebegin
if score<60 then writeln('bad'判斷60分是否是地獄。
else writeln('good');
end;end.
2 從問題可以看出,當月有生育能力的兔子數量等於上個月的兔子總數,那麼當月的兔子總數就是上個月的兔子數量(原件)+上個月的兔子數量(新生兒)。
vara,b,c,i:longint;
begina:=1;上個月。
b:=2;上個月。
for i:=3 to 12 do
beginc:=a+b;查詢當月的兔子數量。
a:=b;上個月變成了上個月。
b:=c;這個月變成了乙個山月。
end;1 月和 2 月是已知的,當前月份是 12 月經過十個週期(c); 輸出當月的兔子數量
1、office password remover
目前尚不清楚它是如何工作的,因為它是乙個可以破譯 MS Word 和 Excel 文件檔案的即時工具,但您需要連線到 Internet 才能使用此軟體,因為需要傳送到軟體伺服器並解密的資料很少。 但是,您可以放心,該軟體不會洩露任何個人私隱。 該軟體僅刪除密碼,不會顯示您的原始密碼。 >>>More