-
有两种方法可以做到这一点:
第一种类型:程序考试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