题目描述
波浪数是在一对数字之间交替转换的数,如1212121,双重波浪数则是指在两种进制下都是波浪数的数,如十进制数191919是一个十进制下的波浪数,它对应的十一进制数121212也是一个波浪数,所以十进制数191919是一个双重波浪数。
类似的可以定义三重波浪数,三重波浪数在三种不同的进制中都是波浪数,甚至还有四重波浪数,如十进制300=606(七进制)=363(九进制)=454(八进制)=1A1(十三进制)…,你的任务就是在指定范围内找出双重、三重、四重波浪数。
输入输出格式
输入格式:
单独一行包含五个用空格隔开的十进制整数,前两个数表示进制的范围(2••32),第三与第四个数表示指定的范围(1••10000000),第五个数为2,3,4中的一个,表示要找的波浪数的重数。
输出格式:
从小到大以十进制形式输出指定范围内的指定重数的波浪数。一行输出一个数。
输入输出样例
输入样例#1:
10 11 190000 960000 2
输出样例#1:
191919
383838
575757
767676
959595
var a,b,c,d,e,i,j,k,n:longint;
x,y:array[..] of longint;
begin
readln(a,b,c,d,e);
for i:=a to b do
begin
for j:= to i- do
for k:= to i- do
begin
n:=;
if (j=k) then continue;
while true do
begin
n:=n*i+j;
if n>d then break;
inc(x[n]);
n:=n*i+k;
if n>d then break;
inc(x[n]);
end;
end;
end;
for i:=c to d do
begin
if (x[i]=e) then writeln(i);
end;
end.