zoukankan      html  css  js  c++  java
  • PAT乙级真题之A除以B (20) (大数求余,整数和字符串之间的处理)

    题目描述
    本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
    
    输入描述:
    输入在1行中依次给出A和B,中间以1空格分隔。
    
    
    输出描述:
    在1行中依次输出Q和R,中间以1空格分隔。
    
    输入例子:
    123456789050987654321 7
    
    输出例子:
    17636684150141093474 3
    

      解法:

    package abc;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class Main{
    	public static void main(String [] args) throws IOException {
    		BufferedReader bR = new BufferedReader(new InputStreamReader(System.in));///BufferedReader类从字符输入流中读取文本并缓冲字符,以便有效地读取字符
    		String [] ab = bR.readLine().split(" ");///输入流抛出错误。split分割字符串
    		
    		bR.close();
    		int b = Integer.parseInt(ab[1]),t=0;///b为除数
    		StringBuilder strB = new StringBuilder();
    		
    		for(int i=0;i<ab[0].length();i++) {
    			t=t*10+ab[0].charAt(i)-'0';///转化为整数
    			strB.append((char)(t/b+'0'));///又转化为字符
    			t=t%b;///余数。
    		}
    		String ret = strB.toString();///转化为字符串
    		if(ret.charAt(0)=='0' && ret.length() !=1) {
    			System.out.print(ret.substring(1)+" "+t);///取第二个元素到结尾的字符串
    		}else {
    			System.out.print(ret+" "+t);
    		}
    	}
    }
    

      

    不忘初心,方得始终。只有走过弯路,才更确信当初最想要的是什么。
  • 相关阅读:
    Java面经
    关于MarkDown语法
    JQuery
    Filter & Listener
    JSP & EL & JSTL
    Cookie & Session
    Servlet & HTTP
    Tomcat
    XML
    BootStrap
  • 原文地址:https://www.cnblogs.com/wszhu/p/12285216.html
Copyright © 2011-2022 走看看