洛谷1604 B进制星球

阅读: 评论:0

洛谷1604 B进制星球

洛谷1604 B进制星球

B进制星球 题目描述
话说有一天,小Z乘坐宇宙飞船,飞到一个美丽的星球。因为历史的原因,科技在这个美丽的星球上并不很发达,星球上人们普遍采用B(2<=B<=36)进制计数。星球上的人们用美味的食物招待了小Z,作为回报,小Z希望送一个能够完成B进制加法的计算器给他们。 现在小Z希望你可以帮助他,编写实现B进制加法的程序。


分析 普通的高精度加法加一些模拟,不难,进位时注意是B进制不是10进制。
代码   const
  maxn=2000;
var
  c,a,b:axn] of longint;
  n:longint;


procedure init;
var
  s1,s2:ansistring;
  i,j,l1,l2:longint;
begin
  readln(n);
  readln(s1);
  readln(s2);
  l1:=length(s1);l2:=length(s2);
  for i:=l1 downto 1 do
    if s1[i] in ['0'..'9']
      then a[maxn-l1+i]:=ord(s1[i])-48
      else a[maxn-l1+i]:=ord(s1[i])-55;
  for i:=l2 downto 1 do
    if s2[i] in ['0'..'9']
      then b[maxn-l2+i]:=ord(s2[i])-48
      else b[maxn-l2+i]:=ord(s2[i])-55;
end;


procedure add;
var
  i,g,s:longint;
begin
  g:=0;
  for i:=maxn downto 1 do
    begin
      s:=a[i]+b[i]+g;
      c[i]:=s mod n;
      g:=s div n;
    end;
end;


procedure print;
var
  i,j:longint;
begin
  j:=1;
  while (c[j]=0) and (j<maxn) do inc(j);
  for i:=j to maxn do
    if c[i]>9
      then write(chr(c[i]+55))
      else write(c[i]);
end;


begin
  init;
  add;
  print;
end.

本文发布于:2024-01-27 22:39:13,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063663563070.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:星球   洛谷
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23