RQNOJ143 题解 、、

题目:巨型整数
问题编号:143
题目背景:
Aliya姐姐是众所周知的数学大牛,可是有一天她却被一位超级简单的小学数学题给难住了,恰好她碰到了正在OI路上奋斗的您,她相信聪明的您一定能够做出来..>_<{有奖励的哟}
题目描述:
给定一个任意整数,请您对它作出如下处理,从第1位开始到最后一位,对于第n位的数字将它转化为an*10^l+1-n(l为该数的最大位数)然后将他们累加在一起得到一个新的整数,再请您求出各个位数上的和。{够简单吧~~~}
输入格式
一个任意整数n.对于20%的数据n<=9*10^9对于40%的数据
n<=9*10^200,对于60%的数据n<=9*10^2000,对于100%的数据
n<=9*10^20000
输出格式
输出文件为两行,第一行为处理后得到的新的整数,第二行为所求得的各个位数上的和。
样例输入 2516

样例输出
6152
14

看到这道题,以为很难,结果把样例一看完。发现 哎 滚滚长江都是水啊~

怎么说呢 这道题就是让你把一个很长的数字 到过来输出一遍 再把每个数位上的数字相加,注意去掉前导零就是了~

贴一下代码:

Type int=longint;
Var s:ansistring;l,ans:int;
Begin
       Readln(s);
       L:=length(s);
       While(s[l]=’0’)dodec(l);
       While(l>0)do
       Begin
              Write(s[l]);
              Inc(ans,ord(s[l])-48);
              Dec(l);
End;
Writeln();
Writeln(ans);
End;

Ps:由于第一次没有开ansistring 导致wa掉一次,,为什么每次都要失误一次。。呜呜~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值