任意给定正整数n、c,找一个正整数m,使m*n的值的数字由0、1、2、……、C( 0 < C
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 10:47:12
任意给定正整数n、c,找一个正整数m,使m*n的值的数字由0、1、2、……、C( 0 < C
任意给定正整数n、c,找一个正整数m,使m*n的值的数字由0、1、2、……、C( 0 < C
任意给定正整数n、c,找一个正整数m,使m*n的值的数字由0、1、2、……、C( 0 < C
program ling;
var i:longint;g,n,c:qword;{越大越好}
function ss(i:qword):boolean;
var j:longint;s,d:set of 0..9;{设s,d两个集合}
begin s:=[];{初始集合为空}
for j:=0 to c do s:=s+[j];d:=s;{把集合s给集合d}
while i0 do begin{如果I不等于零}
if not(i mod 10 in d) then begin ss:=false;exit;end;{判断 最后一位是否在集合中}
s:=s-[i mod 10];{减去最后一位}i:=i div 10;{I将最后一位舍去}
end; if s=[] then ss:=true{如果集合为空i值为真}
else ss:=false;end;{不是值为假}
begin
read(n,c);{输入}
for i:=1 to 100000 do{一千次循环}
begin
g:=n*i;{g是乘积}
if ss(g) then begin{判断是不是}
write(i);halt;end;{是就输出;结束}
end;
write('No find!');{如果没有就输出No find!}
end.
望楼主采纳!小弟感谢不尽!
var i1,j:longint;s1:string;s,n,c:qword;
a:array[0..10]of longint;
function q:boolean;
var i:longint;
begin
q:=true;
for i:=0 to c do
if a[i]<1 then begin q:=false;e...
全部展开
var i1,j:longint;s1:string;s,n,c:qword;
a:array[0..10]of longint;
function q:boolean;
var i:longint;
begin
q:=true;
for i:=0 to c do
if a[i]<1 then begin q:=false;exit;end;
for i:=c+1 to 9 do
if a[i]<>0 then begin q:=false;exit;end;
end;
begin
readln(n,c);
for i1:=1 to 100000 do
begin
s:=n*i1;
fillchar(a,sizeof(a),0);
str(s,s1);
for j:=1 to length(s1) do
inc(a[ord(s1[j])-48]);
if q then begin write(i1);exit;end;
end;
writeln('No find!');
end.
收起
没看懂,举个例子。