考研机试 18.特殊乘法

时间:2021/03/03

一.题目描述

写个算法,对2个小于1000000000的输入,求结果。 特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5

输入描述

两个小于1000000000的数

输出描述

输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。

题目链接

https://www.nowcoder.com/practice/a5edebf0622045468436c74c3a34240f?tpId=40&tqId=21349&rp=1&ru=%2Fta%2Fkaoyan&qru=%2Fta%2Fkaoyan%2Fquestion-ranking&tab=answerKey

二.算法

题解

这里在读取时我们并没有使用int类型,这是因为int类型不容易将每一位的数字拆分出来,而使用String类型的toCharArray方法可以轻松做到这一点。在进行乘法运算时我们又通过Integer类的静态方法parseInt将String转化为int类型。

重点

String类的toCharArray方法和Integer类的静态方法parseInt

代码

import java.util.Scanner;

public class Main{
    
    public static void main(String[] args){
        
        Scanner in = new Scanner(System.in);
        
        while(in.hasNext()){
            char[] a = in.next().toCharArray();
            char[] b = in.next().toCharArray();
            long count = 0;
            
            for(int i = 0; i < a.length; i++){
                
                for(int j = 0; j < b.length; j++){
                    
                    count = count + (Integer.parseInt(a[i] + "") * Integer.parseInt(b[j] + "")); 
                }
            }
            
            System.out.println(count);
            
        }
    }
}
原文地址:https://www.cnblogs.com/machi12/p/14474765.html