写一个程序,给定一个N(2<=N<=10,N=16)进制数M pascal
来源:百度知道 编辑:UC知道 时间:2024/06/24 17:18:05
若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。
例如:给定一个10进制数56,将56加56(即把56从右向左读),得到121是一个回文数。
又如:对于10进制数87:
STEP1:87+78 = 165 STEP2:165+561 = 726
STEP3:726+627 = 1353 STEP4:1353+3531 = 4884
在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。
写一个程序,给定一个N(2<=N<=10,N=16)进制数M,求最少经过几步可以得到回文数。如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible!”
例如:给定一个10进制数56,将56加56(即把56从右向左读),得到121是一个回文数。
又如:对于10进制数87:
STEP1:87+78 = 165 STEP2:165+561 = 726
STEP3:726+627 = 1353 STEP4:1353+3531 = 4884
在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。
写一个程序,给定一个N(2<=N<=10,N=16)进制数M,求最少经过几步可以得到回文数。如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible!”
var
n:longint;
x:string;
m,f:array[1..10000]of longint;
i,j,ans,long:longint;
Begin
readln(n);
readln(x);
j:=length(x);
for i:=1 to length(x)do
begin
case x[i] of
'A':m[j]:=10;
'B':m[j]:=11;
'C':m[j]:=12;
'D':m[j]:=13;
'E':m[j]:=14;
'F':m[j]:=15;
else m[j]:=ord(x[i])-ord('0');
end;
dec(j);
end;
f:=m; long:=length(x);
while true do
begin
inc(ans);
if ans=31 then
begin
write('Impossible!');
halt;
end;
for i:=1 to 100 do
begin
j:=long-i+1;
inc(f[i],m[j]);
end;
for i:=1 to long do
begin
inc(f[i+1],f[i] div n);
f[i]:=f[i] mod n;
end;
if f[long+1]>0 then inc(
编写一个函数,重复打印给定的字符N次.
输入一个n时,已知给定n的范围,如何进行判断?
任意给定一个大于1的正整数n,设计一个算法求出n的所有因数.
给定有n个元素的向量,建立一个有序单链表的时间复杂度是
用C语言写一个程序,输入一个整数n,输出1,2,3,4.……n的全排列
求解:任意给定一个正三角形......
编写程序,判断一个IP地质是否合法,并判断该地质是否属于一个给定子网?
用javascript写一个计算10的n次方的程序怎么写
用JAVA编写程序,计算1!+2!+3!+…+n!的和,其中阶乘的写一个方法实现。
一个编程题s=1+2-3+4-5+6-7+....+n的程序算法怎么写