dells(N,Keta,N1,Keta1):-
N=<9*(10^Keta)*(Keta+1),
!,
N1 is N-1,
Keta1 is Keta+1.
dells(N,Keta,ResultN,ResultK):-
N1 is N-9*(10^Keta)*(Keta+1),
Keta1 is Keta+1,
dells(N1,Keta1,ResultN,ResultK).
hit2(Num,1,Result):-!,Result is Num mod 10.
hit2(Num,P,Result):-
Num1 is Num//10,
P1 is P-1,
hit2(Num1,P1,Result).
hit(N,Keta,Num2):-
Num is 10^(Keta-1)+N//Keta,
P is Keta-(N mod Keta),
hit2(Num,P,Num2).
calc(N,N2):-
dells(N,0,N1,Keta),
hit(N1,Keta,N2).
calcA(N):-
member(E,[1,10,100,1000,10000,100000,1000000]),
calc(E,N).
mult([],M,M):-!.
mult([X|Xs],M,Result):-
M1 is M*X,
mult(Xs,M1,Result).
main:-
findall(E,calcA(E),Es),
mult(Es,1,Ans),
write(Ans).
最終更新:2014年12月03日 11:43