一道pascal题目
N的倍数(n.pas)问题描述给定一个整数n,n<=200,求一个整数m,m为n的倍数,且m由0和1构成。当然,这里我们只求最小的那个m。输入格式包含多组数据,每行一个整...
N的倍数(n.pas)
问题描述
给定一个整数n,n<=200,求一个整数m,m为n的倍数,且m由0和1构成。当然,这里我们只求最小的那个
m。
输入格式
包含多组数据,每行一个整数n,以0结束。
输出格式
对于一个n,输出一个整数m,m的位数不超过100位,一行一个。
输入样例
2
6
19
0
输出样例
10
100100100100100100
111111111111111111 展开
问题描述
给定一个整数n,n<=200,求一个整数m,m为n的倍数,且m由0和1构成。当然,这里我们只求最小的那个
m。
输入格式
包含多组数据,每行一个整数n,以0结束。
输出格式
对于一个n,输出一个整数m,m的位数不超过100位,一行一个。
输入样例
2
6
19
0
输出样例
10
100100100100100100
111111111111111111 展开
1个回答
展开全部
我擦,楼主那个 6 的倍数 1110 也可以吧,所以说楼主的数据有问题 19 也是一样也 11001
正确标程
var a:array[1..1000] of longint;
l,i,n:longint;
function t(l:longint):boolean;
var i:integer;
begin
for i:=1 to l do
if (a[i]<>0)and(a[i]<>1) then exit(false);
exit(true);
end;
begin
readln(n);
while n<>0 do
begin
fillchar(a,sizeof(a),0);
a[1]:=n;l:=1;
while not(t(l)) do
begin
a[1]:=a[1]+n;
for i:=1 to l do
if a[i]>9 then
begin
a[i+1]:=a[i+1]+a[i] div 10;
a[i]:=a[i] mod 10;
end;
if a[l+1]>0 then inc(l);
//if l>100 then break;
end;
for i:=l downto 1 do write(a[i]);writeln;
readln(n);
end;
end.
正确标程
var a:array[1..1000] of longint;
l,i,n:longint;
function t(l:longint):boolean;
var i:integer;
begin
for i:=1 to l do
if (a[i]<>0)and(a[i]<>1) then exit(false);
exit(true);
end;
begin
readln(n);
while n<>0 do
begin
fillchar(a,sizeof(a),0);
a[1]:=n;l:=1;
while not(t(l)) do
begin
a[1]:=a[1]+n;
for i:=1 to l do
if a[i]>9 then
begin
a[i+1]:=a[i+1]+a[i] div 10;
a[i]:=a[i] mod 10;
end;
if a[l+1]>0 then inc(l);
//if l>100 then break;
end;
for i:=l downto 1 do write(a[i]);writeln;
readln(n);
end;
end.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询