java程序设计大赛acm_2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 I Reversion Count(Java大数)...

题面:26.82%

1000ms

65536K

Description:

There is a positive integer X, X's reversion count is Y. For example, X=123, Y=321; X=1234, Y=4321. Z=(X-Y)/9, Judge if Z is made up of only one number(0,1,2...9), like Z=11,Z=111,Z=222,don't consider '+'and '-'.

Input:

Input contains of several test cases. Each test case only contains of a number X, L is the length of X. ( 2 <= L < 100)

Output:

Output “YES”or “NO”.

样例输入 10

13

样例输出 YES

YES

题目描述:给你一个长度为100的数,问你用这个数的反转的数减去当前数的绝对值整除9后,所得的数是否只含有一种数字。

对于这道题目,看到这个数的长度为100,果断打开了eclipse。(java在大整数处理上确实是方便太多了)

如果知道BigInteger的话,这道题就很容易的被转化成了一个只需要考虑获取反转的数即可。

第一次用java在网络赛交题,java写得还是太不熟练了2333

附上java代码:import java.util.*;

import java.math.*;

public class Main{

public static void main(String[] args) {

Scanner sca=new Scanner(System.in);

BigInteger n;

while(sca.hasNext()){

n=sca.nextBigInteger();

BigInteger tmp,res,ans;

BigInteger Ten=BigInteger.valueOf(10);

tmp=n;

res=BigInteger.ZERO;

while(tmp.compareTo(BigInteger.ZERO)==1){

res=res.multiply(Ten);

res=res.add(tmp.mod(Ten));

tmp=tmp.divide(Ten);

}

ans=res.subtract(n);

ans=ans.abs();

ans=ans.divide(BigInteger.valueOf(9));

BigInteger tmp1=ans.mod(Ten);

ans.divide(Ten);

int flag=1;

while(ans.compareTo(BigInteger.ZERO)==1){

BigInteger tmp2=ans.mod(Ten);

if(tmp2.compareTo(tmp1)==1){

System.out.println("NO");

flag=0;

break;

}

ans=ans.divide(Ten);

}

if(flag==1) System.out.println("YES");

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值