3个回答
展开全部
我提供代码如下
===============================================================
program nto10;
const
maxn=10000;
var
a:array[1..maxn]of integer;
flag:boolean;
i,j,k,n,num2:longint;
s,num1:string;
begin
s:='0123456789abcdefghijklmnopqrstuvwxyz';
readln(n);
readln(num1);
for i:=1 to length(num1) do
begin
flag:=false;
for j:=1 to n do
begin
if num1[i]=s[j]
then begin
a[i]:=j-1;
flag:=true;
end;
end;
if flag=false
then begin
writeln('sorry,can''t compute it');
halt;
end;
end;
for i:=1 to length(num1)-1 do
begin
num2:=(num2+a[i])*n;
end;
num2:=num2+a[length(num1)];
writeln(num2);
end.===============================================================
希望对你有所帮助
n进制转10进制的基本方法便是
每一位 乘 位数的n-1次方
举个例子:
当n=2 num1=1001
转换便是:
num2=1*(2^3)+0*(2^2)+0*(2^1)+1*(2^0)=9
===============================================================
program nto10;
const
maxn=10000;
var
a:array[1..maxn]of integer;
flag:boolean;
i,j,k,n,num2:longint;
s,num1:string;
begin
s:='0123456789abcdefghijklmnopqrstuvwxyz';
readln(n);
readln(num1);
for i:=1 to length(num1) do
begin
flag:=false;
for j:=1 to n do
begin
if num1[i]=s[j]
then begin
a[i]:=j-1;
flag:=true;
end;
end;
if flag=false
then begin
writeln('sorry,can''t compute it');
halt;
end;
end;
for i:=1 to length(num1)-1 do
begin
num2:=(num2+a[i])*n;
end;
num2:=num2+a[length(num1)];
writeln(num2);
end.===============================================================
希望对你有所帮助
n进制转10进制的基本方法便是
每一位 乘 位数的n-1次方
举个例子:
当n=2 num1=1001
转换便是:
num2=1*(2^3)+0*(2^2)+0*(2^1)+1*(2^0)=9
展开全部
你建立一个指针,从高位向低位扫描,每扫描一个数就乘以N
比如又一个N位数是
1234
你要转换为十进制数
过程是
指针→1 结果→1
指针→2 结果→1*n+2=a1
指针→3 结果→a1*n+3=a2
指针→4 结果→a2*n+4=a3
最后转化的结果就是a3
值得注意的是,十进制以上的数需要利用ASCII码来处理9以上的数字
比如又一个N位数是
1234
你要转换为十进制数
过程是
指针→1 结果→1
指针→2 结果→1*n+2=a1
指针→3 结果→a1*n+3=a2
指针→4 结果→a2*n+4=a3
最后转化的结果就是a3
值得注意的是,十进制以上的数需要利用ASCII码来处理9以上的数字
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解释一下:输入的是n进制的数m(这里默认n<10),输出是ans。
var
ans,n,m,x,i,j:longint;
begin
readln(n,m); //输入
j:=1;
ans:=m mod 10;
m:=m div 10;
while m<>0 do
begin
j:=j*n;
x:=m mod 10;
ans:=ans+(x*j);
m:=m div 10;
end;
writeln(ans);
end.
var
ans,n,m,x,i,j:longint;
begin
readln(n,m); //输入
j:=1;
ans:=m mod 10;
m:=m div 10;
while m<>0 do
begin
j:=j*n;
x:=m mod 10;
ans:=ans+(x*j);
m:=m div 10;
end;
writeln(ans);
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询