一道pascal循环题目

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:10:14
输入一个正整数,如果是偶数则除以2,如果是奇数则乘以3加1,这个数经过一番处理以后都会变成1,如16-8-4-2-1.请输出该数的变化过程.
program a_1(input,output);
var
a:integer;
begin
readln(a);
writeln('a','-');
while a>1 do
begin
if a mod 2=0 then a:=a/2
else a:=a*3+1;
writeln('a','-');
end;
writeln(a);
end.
这是我做的pascal程序,那里出错了?

program a1(input,output);
var
a:longint;
begin
readln(a);
writeln('a','-');
while a>1 do
begin
if a mod 2=0 then a:=a div 2
else a:=a*3+1;
if a>1 then writeln('a','-');
end;
writeln(a);
end.

var
a:integer;
begin
readln(a);
write(a);
while a>1 do
begin
if a mod 2=0 then a:=a div 2
else a:=a*3+1;
write('-',a)
end;
end.
再次修改而得

program ex;
var a : longint;
begin
write('please input:');
readln(a);
if a=1 then
write(a);
if a>1 then
begin
while a>1 do
begin
if a mod 2 =0 then
begin
a:=a div 2;
end;
if a>1 then
begin
if a mod 2 =1 then
beg