首页 > 专题系列 > Java解POJ > POJ 3673 Cow Multiplication [解题报告] Java
2013
11-13

POJ 3673 Cow Multiplication [解题报告] Java

Cow Multiplication

问题描述 :

Bessie is tired of multiplying pairs of numbers the usual way, so she invented her own style of multiplication. In her style, A*B is equal to the sum of all possible pairwise products between the digits of A and B. For example, the product 123*45 is equal to 1*4 + 1*5 + 2*4 + 2*5 + 3*4 + 3*5 = 54. Given two integers A and B (1 ≤ A, B ≤ 1,000,000,000), determine A*B in Bessie’s style of multiplication.

输入:

* Line 1: Two space-separated integers: A and B.

输出:

* Line 1: A single line that is the A*B in Bessie’s style of multiplication.

样例输入:

123 45

样例输出:

54

解题代码:

(1)
import java.util.Scanner;
public class Main{
 public static void main(String[] args) {
  Scanner scanner=new Scanner(System.in);
  String str1=scanner.next();
  String str2=scanner.next();
  char[] array1=str1.toCharArray();
  char[] array2=str2.toCharArray();
  int sum1=0;
  for(int i=0;i< array1.length;i++){
    sum1+=array1[i]-48;
   }

  int sum2=0;
  for(int i=0;i< array2.length;i++){
   sum2+=array2[i]-48;
  }

  System.out.println(""+(sum1*sum2));
 }
}
锛�锛� import java.util.*; public class Main { /** * @param args */ public static void main(String[] args) { Scanner cin = new Scanner(System.in); String[] str = null; String a = null; String b = null; int numa = 0; int numb = 0; while (cin.hasNext()) { numa = 0; numb = 0; str = cin.nextLine().split(" "); a = str[0]; b = str[1]; for(int i = 0; i < a.length(); i++) numa = numa + Integer.valueOf(""+a.charAt(i)); for(int j = 0; j < b.length(); j++) numb = numb + Integer.valueOf(""+b.charAt(j)); System.out.println(numa * numb); } } }

  1. 第二个方法挺不错。NewHead代表新的头节点,通过递归找到最后一个节点之后,就把这个节点赋给NewHead,然后一直返回返回,中途这个值是没有变化的,一边返回一边把相应的指针方向颠倒,最后结束时返回新的头节点到主函数。