您的位置:首页 > 其它

pat Have Fun with Numbers

2015-04-19 21:39 357 查看
注意。java里面的long只能到19位。题目要求是20位。。天。坑了我好长时间

题目链接点击打开链接

import java.util.Scanner;
import java.math.*;

public class Solution
{
public static void main(String args[])
{
Scanner in=new Scanner(System.in);
String input=in.next();
BigDecimal INPUTLONG=new BigDecimal(input);

BigDecimal RESULT=INPUTLONG.multiply(new BigDecimal(2));
String strTemp=INPUTLONG.toString();
int  lengthInput=strTemp.length();

strTemp=RESULT.toString();
int  lengthResult=strTemp.length();
//		System.out.printf("%s %s",lengthInput,lengthResult);
if(lengthInput!=lengthResult)
{
System.out.println("No");
System.out.println(RESULT);
return;
}

int numberFlat[]=new int [10];
for(int i=0;i<10;i++)
{
numberFlat[i]=0;
}

for(int i=0;i<lengthInput;i++)
{

numberFlat[(INPUTLONG.remainder(new BigDecimal(10))).intValue()]++;
INPUTLONG=INPUTLONG.divide(new BigDecimal(10));
}

BigDecimal temp=RESULT;
for(int i=0;i<lengthInput;i++)
{

numberFlat[(temp.remainder(new BigDecimal(10))).intValue()]--;
temp=temp.divide(new BigDecimal(10));
}

//verify
Boolean flag=true;
for(int i=0;flag&&i<=9;i++)
{
if(numberFlat[i]==0)
{
continue;
}
else
{
flag=false;
}

}
if(flag)
{
System.out.println("Yes");
}
else
{
System.out.println("No");
}
System.out.println(RESULT);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: