Java题解—1016 部分A+B (15 分)

原题

点击跳转

代码

package pat;

import java.util.Scanner;

/**
 * @Description
 */
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String A=scanner.next();
        int Da=scanner.nextInt();
        String B=scanner.next();
        int Db=scanner.nextInt();

        System.out.println(splice(A, Da) +splice(B, Db));

    }
    //计算关键数出现的次数,然后合成数字
    public static int splice(String num,int key){
        int result=0;
        int count=0;
        char ch=(char) (key+48);//已知字符'0'对应的整型是48
      for (int i=0;i<num.length();i++){
          if (num.charAt(i)==ch){
              result+=key*Math.pow(10,count);//Math.pow(底数,指数)
              count++;
          }
      }
        return result;
    }
}

看了别人的题解不更了这样写更为简单
用long型接收(int型也可以,可表示10位数),然后对数字循环取10的余数判断相等,循环退出条件每次除以10。

上一篇:spring容器


下一篇:JavaScript 连接数组concat、数组截取slice、数组删除splice 和添加