java大数除法_java大数除法求余数

本文探讨了使用Java实现大数除法取余的两种方法:数组逐位操作和BigInteger类的divideAndRemainder方法。作者分享了两种方法的代码示例,并寻求了可能的错误和改进意见,适用于需要处理大数值计算的开发者。
摘要由CSDN通过智能技术生成

题目

输入输出的要求

输入输出样例

看到这一题,我的第一个想法是通过数组进行除法取余运算的,思路是将一串字符和被除数输入,用spit和Integer.parseInt方法把字符串赋值给整形数组,然后一一与被除数相除法

JAVA代码实现

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner in = new Scanner(System.in);

String num = in.next();

int n = in.nextInt();

String []num2 = num.split("");

int []num3 = new int[num2.length];

for(int i = 0;i < num2.length;i++)

{

num3[i] = Integer.parseInt(num2[i]);

}

chufa(num3,n);

}

public static void chufa(int []num,int n)

{

String str = "";

String str2 = "";

int flag = 0;

int flag2 = 0;

for(int i = 0;i < num.length;i++)

{

flag = flag * 10 + num[i];

str += flag / n;

flag = flag % n;

}

for(int i = 0;i < str.length();i++)

{

if(str.charAt(i) != '0')

{

flag2 = i;

break;

}

}

for(int i = flag2;i < str.length();i++)

{

str2 += str.charAt(i);

}

System.out.println(str2 + " " + flag);

}

}

后面发现其实JAVA有更加便捷的大数除法取余数的方法,是通过JAVA的divideAndRemainder方法,num1.divideAndRemainder(num2),就是将num1除以num2,将结果和余数赋值给长度为2的数组

JAVA代码实现:

import java.math.*;

import java.util.*;

public class pat8 {

public static void main(String[] args) {

BigInteger n;

BigInteger m;

Scanner put = new Scanner(System.in);

n=put.nextBigInteger();

m=put.nextBigInteger();

BigInteger[] answer=n.divideAndRemainder(m);

System.out.print(answer[0]+" "+answer[1]);

}

}

以上代码是我自己捣鼓出来的,如果有错误或者有能够改进的地方,望大家伙指正,谢谢!!!~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值