题目1083:特殊乘法
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2571
解决:1783
-
题目描述:
-
写个算法,对2个小于1000000000的输入,求结果。
特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5
-
输入:
-
两个小于1000000000的数
-
输出:
-
输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。
-
样例输入:
-
123 45
-
样例输出:
-
54
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main{ /** * @param args */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while( scanner.hasNext() ){ long a = scanner.nextLong(); long b = scanner.nextLong(); System.out.println(speCaculate(a, b)); } } public static long speCaculate(long a,long b){ long result = 0; List<Long> aList = new ArrayList<Long>(); List<Long> bList = new ArrayList<Long>(); while(a != 0){ aList.add(a%10); a = a/10; } while(b != 0){ bList.add(b%10); b = b/10; } for (int i = 0; i < aList.size(); i++) { for (int j = 0; j < bList.size(); j++) { result += aList.get(i)*bList.get(j); } } return result; } } /************************************************************** Problem: 1083 User: yihukurama Language: Java Result: Accepted Time:80 ms Memory:15512 kb ****************************************************************/