1、绝对回文数
Description
有一种绝对回文数,其十进制与二进制均为回文数。
Input
只有一行且只有一个正整数: n
( 1< n < 10^6 )
Output
只有一行且只有一个正整数:1至n之间(包括1和n)的绝对回文数个数
Sample Input
10
Sample Output
5
Hint
5个绝对回文数是:1、3、5、7、9
(1-1、3-11、5-101、7-111、9-1001 )
2、蛇形方阵
Description
输入一个正整数n,输出 一个n*n的蛇形方阵,具体要求见输出样例。
Input
只有一行且只有一个正整数:n
( 1 <= n <= 100 )
Output
共有n行n列,每个数据占5个字符位置
Sample Input
5
Sample Output
1 3 4 10 11
2 5 9 12 19
6 8 13 18 20
7 14 17 21 24
15 16 22 23 25
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这些题目来自 http://218.75.87.27/pj 这个网站,请大家在这里试题成功后再发上来哦
1、绝对回文数
program p1068;var
z,n,i:longint;
s:string;
function Convert(n:longint):string;
var
s:string;
begin
s:='';
repeat
s:=chr((n mod 2)+48)+s;
n:=n div 2;
until n=0;
convert:=s;
end;
function hw(s:string):boolean;
var
i:longint;
begin
if length(s)=1 then exit(true);
for i:=1 to length(s)div 2 do
if s[i]<>s[length(s)-i+1] then exit(false);
exit(true);
end;
begin
readln(n);
for i:=1 to n do
begin
str(i,s);
if (hw(s))and(hw(convert(i)))then z:=z+1;
end;
writeln(z);
end.
2、蛇形方阵
program p1106;
var
a:array[1..100,1..100] of integer;
c,t,k,r,n:integer;
begin
read(n);
t:=1;k:=1;
for r:=1 to n do
for c:=1 to n do
a[r,c]:=0;
r:=1;c:=1;t:=2;a[1,1]:=1;
while (t<=n*n) do
case k of
1: begin
r:=r+1;
a[r,c]:=t;
t:=t+1;
if c=1 then k:=3;
if c=n then k:=4;
end;
2: begin
c:=c+1;
a[r,c]:=t;
t:=t+1;
if r=1 then k:=4;
if r=n then k:=3;
end;
3: begin
r:=r-1;
c:=c+1;
a[r,c]:=t;
t:=t+1;
if (r=1) then k:=2;
if (c=n) then k:=1;
end;
4: begin
r:=r+1;
c:=c-1;
a[r,c]:=t;
t:=t+1;
if (r=n) then k:=2;
if (c=1)and(r<>n) then k:=1;
end;
end;
for r:=1 to n do
begin
for c:=1 to n do
write(a[r,c]:5);
writeln;
end;
end.请相信我吧,我也是这么做就对的.不信你试试看!