有关编程的问题,请懂的人进

来源:百度知道 编辑:UC知道 时间:2024/06/27 10:13:29
三个问题
是PASCAL的
1\输入X,Y,求它们的最大公约数
2\输入一个二进制数,输出其十进制表示
3\求1~100间所有偶数和(包括100)

求以上三个程序该怎么写?拜托了...

ar a,b,c,d,e:integer;
begin
readln(a,b);
if a<>b then
begin
if a<b then begin d:=a;a:=b;b:=d;end;//保证a>b
c:=a mod b;
while c<>0 do//辗转相除
begin
a:=b;b:=c;
c:=a mod b;
end;
e:=b;
writeln('e=',e);
end else writeln('e=',1);
end.
原理:如果两个数有最大公约数A,那么这两个数,以及这两个数的差,还有大数除以小数的余数,必然都是A的倍数。
所以当最后两个数刚好能整除时,较小的数就是最大公约数。
2.
var total,l,i,temp:integer;st:string;
begin
readln(st);
total:=0;l:=length(st);
for i:=l downto 1 do
if st[i]='1' then begin
temp:=1;
for j:=1 to l-i do temp:=temp*2;
inc(total,temp);
end;
writeln(total);
end.
3.
var total,i:integer;
begin
total:=0;
for i:=1 to 50 do inc(total,i);
writeln(total*2);
end.//1到100的偶数就是2 4 6... 分别是1 2 3...的2倍
//所以直接由1加到50就可以了
4.var zs,fs,lin,i:byte;c:integer;
zs:=0;fs:=0;li