[Java][hoj]Super Calculator

本文介绍了一个使用Java进行大数运算的示例程序,通过Scanner读取用户输入的大数及操作符,利用BigInteger类实现加减乘除等运算,并特别处理了除法中的除零错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package jprac;

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

public class Main
{
	public static void main(String[] args)
	{
		BigInteger a,b;
		String op,sz1,sz2;
		Scanner cin = new Scanner(System.in);
		while(cin.hasNext())
		{
			//a = cin.nextBigInteger();
			//op = cin.next();
			//b = cin.nextBigInteger();
			sz1=cin.next();
			op=cin.next();
			sz2=cin.next();
			
			if(sz1.charAt(0)=='+')
				a=new BigInteger(sz1.substring(1));
			else
				a=new BigInteger(sz1);
			
			if(sz2.charAt(0)=='+')
				b=new BigInteger(sz2.substring(1));
			else
				b=new BigInteger(sz2);
			if(op.equals("+"))
				System.out.println(a.add(b));
			else if(op.equals("-"))
				System.out.println(a.subtract(b));
			else if(op.equals("*"))
				System.out.println(a.multiply(b));
			else if(op.equals("/"))
			{
				if(b.equals(BigInteger.ZERO)){
					System.out.println("Divided by zero.");
				}
				else{
					BigInteger res[] = a.divideAndRemainder(b);
					System.out.println(res[0] + " " + res[1]);
				}
			}
			else if(op.equals(">"))
			{ 
				if(a.compareTo(b)>0)
					System.out.println("true");
				else
					System.out.println("false");
			}
			else if(op.equals("<"))
			{
				if(a.compareTo(b)<0)
					System.out.println("true");
				else
					System.out.println("false");
			}
			else
			{
				if(a.equals(b))
					System.out.println("true");
				else
					System.out.println("false");
			}
		}
		
	}

}

熟悉了一下大数功能,但是这个new总让我心存疑虑。。。好吧,Java中不需要delete

为什么非要转成字符串呢。。。HOJ服务器上的环境版本较低。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值