模拟: { Author:wzx961008 Problem:UVa 10591-Happy Number Verdict:Accepted Language:PASCAL Run Time:0.016s Submission Date:2011-03-05 06:32:08 } var n,i,num:longint; f:array[1..1000]of boolean; function happy(num:longint):boolean; var s1,s2:string; i,t:longint; begin str(num,s1); s2:=s1; repeat t:=0; for i:=1 to length(s2) do t:=t+sqr(ord(s2[i])-48); if not f[t] then f[t]:=true else exit(false); str(t,s2); if s2='1' then exit(true); until false; end; begin readln(n); for i:=1 to n do begin fillchar(f,sizeof(f),false); readln(num); if happy(num) then writeln('Case #',i,': ',num,' is a Happy number.') else writeln('Case #',i,': ',num,' is an Unhappy number.'); end; end.