标签:
波浪数是在一对数字之间交替转换的数,如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[0..10000000] of longint; begin readln(a,b,c,d,e); for i:=a to b do begin for j:=1 to i-1 do for k:=0 to i-1 do begin n:=0; 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.
标签:
原文地址:http://www.cnblogs.com/yangqingli/p/4919630.html