题目描述 本题要求计算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); } } }