首页 > 试题广场 >

A除以B (20)

[编程题]A除以B (20)
  • 热度指数:29674 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。

输入描述:
输入在1行中依次给出A和B,中间以1空格分隔。


输出描述:
在1行中依次输出Q和R,中间以1空格分隔。
示例1

输入

123456789050987654321 7

输出

17636684150141093474 3
import java.math.BigInteger;
import java.util.Scanner;

/**
 * @author Chen
 * @create 2025-02-12 9:16
 */
public class AdivideB {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String A = scanner.next();
        String B = scanner.next();
        BigInteger Aa = new BigInteger(A);
        BigInteger Bb = new BigInteger(B);
        BigInteger Q = Aa.divide(Bb);
        BigInteger R = Aa.remainder(Bb);
        System.out.println(Q + " " + R);
    }
}b比比谁更短
发表于 2025-02-12 09:30:28 回复(0)
长整数除法规则:

例 123456 除以 7,求商和余数
规则:
初始化tempRemainder = 0,
从被除数的最高位开始,由tempRemainder*10 + nums[index]构成一个二位数

tempRemainder*10+nums[top] = 01,01除以7  得商=0,tempRemainder=1
tempRemainder*10 + nums[top-1] = 12,12除以7  得商=1,tempRemainder=5
tempRemainder*10 + nums[top-2] = 53, 53除以7 得商=7,tempRemainder=4
以此类推
最后一轮的tempRemainder即为长整数除法的最终余数,总结果的商为 017636(每轮除得结果的商进行移位再相加或字符串拼接)



import java.util.*;
public class Main {
    public static void main(String []args){
        Scanner in = new Scanner(System.in);
        String longNum = in.next(); //被除数
        int div = in.nextInt(); //除数

        char[] nums = longNum.toCharArray();
        int[] res = new int[1001];  //用来保存除法结果的商
        int index = 0,remainder = 0,sum=0;

        while(index<nums.length){
            //由 tempRemainder*10 + nums[index] 构成当前局部运算中的被除数
            int curNum = remainder*10+(nums[index]-'0');
            int curDiv = curNum/div;
            remainder = curNum%div;
            res[index] = curDiv;
            index++;
        }
        int i = 1;
        if(res[0]!=0){System.out.print(res[0]);}
        while(i<nums.length){System.out.print(res[i++]);}
        System.out.print(" "+remainder);
    }
}

发表于 2021-12-30 17:02:19 回复(0)
import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        BigInteger A=scanner.nextBigInteger();
        Integer B=scanner.nextInt();
        BigInteger Q =A.divide(BigInteger.valueOf(B));
        BigInteger R=A.subtract(Q.multiply(BigInteger.valueOf(B)));
        System.out.println(Q+" "+R);
    }
}

发表于 2019-11-05 21:41:15 回复(0)
java中math包中BigInteger类即可
import java.math.BigInteger;
import java.util.*;

public class Mian
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        BigInteger num1=sc.nextBigInteger();
        BigInteger num2=sc.nextBigInteger();
        System.out.print(num1.divide(num2)+" "+num1.mod(num2));
    }
}


发表于 2019-10-21 19:59:58 回复(0)
import java.util.Scanner;
public class Main{
 private static void chufa(String a,int b) {
  StringBuffer q=new StringBuffer();
  char []num=a.toCharArray();
  int chu=0;
  int yu=0;
  for(int i=0;i<num.length;i++) {
   chu=yu*10+Integer.parseInt(String.valueOf(num[i]));
   q.append(chu/b);
   yu=chu%b;
  }
  while(q.charAt(0)=='0') {
   q.delete(0, 1);
  }
  System.out.println(q.toString()+" "+yu);
 }
 public static void main(String[] args) {
  Scanner in=new Scanner(System.in);
  while(in.hasNext()) {
  String n=in.next();
  int p=in.nextInt();
  chufa(n,p);
 }
}
}

发表于 2019-03-08 18:03:32 回复(0)
import java.math.BigDecimal;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        BigDecimal bigA = new BigDecimal(sc.next());
        BigDecimal bigB = new BigDecimal(sc.next());
        System.out.println(bigA.divide(bigB,0,BigDecimal.ROUND_DOWN)+" "+(bigA.divideAndRemainder(bigB)[1]));
    }
}
发表于 2019-01-16 21:47:23 回复(0)
import java.util.Scanner;

public class Main {

    private static Scanner sc;

    public static void main(String[] args) {
        sc = new Scanner(System.in);
        String A = sc.next();
        int B = sc.nextInt();
        StringBuilder a = new StringBuilder();
        int length = A.length();
        int i;
        int t, q = 0;
        t = q * 10 + A.charAt(0) - '0';
        if(t / B != 0) {
            a.append(t / B);
        }
        q = t % B;
        for (i = 1; i < length; i++) {
            t = q * 10 + A.charAt(i) - '0';
            a.append(t / B);
            q = t % B;
        }
        System.out.println(a + " " + q);
    }
}
发表于 2018-09-06 11:36:39 回复(0)
好吧,使用BigInteger几乎不用思考...
import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
//        numberClassify();
//        System.out.println(getNextPrimeFrom(3));
//        getPrimesFromM2N();

//        System.out.println(Integer.MAX_VALUE);//2147483647
//        System.out.println(BigInteger.ONE);
//        System.out.println(new BigInteger(String.valueOf(200)));//"123456789050987654321"

        solveAdivB();
    }

    static void solveAdivB() {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            BigInteger bIntA = new BigInteger(scanner.next());
            BigInteger bIntB = new BigInteger(scanner.next());
            BigInteger[] results = bIntA.divideAndRemainder(bIntB);
            System.out.println(results[0] + " " + results[1]);
        }
    }
}

发表于 2018-06-05 10:28:34 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
    Scanner sc=new Scanner(System.in);
    String A=sc.next();
    char [] number=A.toCharArray();
    int B=sc.nextInt();
    int pre=0,shang;
    int [] shangArray=new int[number.length];
    for (int i = 0; i < number.length; i++) {
        shang=(pre*10+Integer.parseInt(String.valueOf(number[i])))/B;
        pre=(pre*10+Integer.parseInt(String.valueOf(number[i])))%B;
        shangArray[i]=shang;
    }
    int count=0;
    while(shangArray[count]==0) {
        count++;
    }
    String str="";
    for(int i=count;i<shangArray.length;i++) {
        str+=shangArray[i];
    }
    System.out.println(str+" "+pre);
}

发表于 2018-05-29 22:31:36 回复(0)
//使用java的自带的BigInteger类啊
import java.math.BigInteger;
import java.util.Scanner;
public class Main{  
public static void main(String[] args) {  
Scanner in = new Scanner(System.in);   
String str=in.next();  
String a= in.next();  
BigInteger big1 = new BigInteger(str);  
BigInteger big2 = new BigInteger(a);  
System.out.print(big1.divide(big2)+" "+big1.mod(big2));  }
}

编辑于 2018-05-12 08:51:23 回复(0)
import java.math.BigInteger;
import java.util.Scanner;
public class Main{
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		BigInteger a;
		BigInteger b;
		float q=0;
		int r=0;
		Scanner sc = new Scanner(System.in);
		a=sc.nextBigInteger();
		b=sc.nextBigInteger();
		System.out.println(a.divide(b) +" "+a.divideAndRemainder(b)[1]);
	}
}
发表于 2017-04-05 15:17:29 回复(0)
//使用java自带的大数类BigInteger =_=

import java.math.BigInteger;
import java.util.Scanner;

public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
BigInteger bi1 = input.nextBigInteger();
BigInteger bi2 = input.nextBigInteger();
System.out.println (bi1.divide(bi2)+" "+bi1.remainder(bi2));  
}
}

发表于 2016-08-02 06:45:51 回复(2)

问题信息

难度:
12条回答 26162浏览

热门推荐

通过挑战的用户

A除以B (20)