第一题感觉也不用这么麻烦,有小技巧~~~....对于123*456,实际上只要数6*123,5*123,4*123,三个结果里面每个字符的数量就好了(再加上ab本身和a*b本身). package WY; import java.util.Scanner; /**  * 思路:  *      1. 对两个数字逐位计算,假设要计算 a*b,  *      则列式为:  *          a[0] a[1] a[2] .. a[N]  *        x b[0] b[1] b[2] .. b[N]  *  *      结果第一行是b[N]*a[N] , a[N-1] ... a[1],  *  *      模拟即可,需要考虑进位.  *  *  */ public class wangyi01 {     public static void main(String[] args){         wangyi01 wangyi01 = new wangyi01();         wangyi01.Input();     }     int N;     // 记录每位的数字出现次数     int[] count = new int[10];     public void Input(){         Scanner in = new Scanner(System.in);         N = in.nextInt();         for(int i=0;i<N;i++){             int a = in.nextInt();             int b = in.nextInt();             Slove(a,b);         }         int max = 0;         int maxNumber = 0;         for(int i=1;i<=9;i++){             if(count[i]>max){                 max = count[i];                 maxNumber = i;             }         }         System.out.println(maxNumber);     }     public void Slove(int a,int b){         int[] tempCount = new int[10];         String strb = String.valueOf(b);         for(int i=0;i<strb.length();i++){             int num = strb.charAt(i)-'0';             int result = num * a;             String strResult = String.valueOf(result);             for(int j=0;j<strResult.length();j++){                 int number = strResult.charAt(j)-'0';                 count[number]++;                 tempCount[number]++;             }         }         // 计算a*b         String strResult = String.valueOf(a*b);         for(int j=0;j<strResult.length();j++){             int number = strResult.charAt(j)-'0';             count[number]++;             tempCount[number]++;         }         // 计算a         strResult = String.valueOf(a);         for(int j=0;j<strResult.length();j++){             int number = strResult.charAt(j)-'0';             count[number]++;             tempCount[number]++;         }         // 计算b         strResult = String.valueOf(b);         for(int j=0;j<strResult.length();j++){             int number = strResult.charAt(j)-'0';             count[number]++;             tempCount[number]++;         }         System.out.print(tempCount[1]);         for(int i=2;i<=9;i++){             System.out.print(" "+tempCount[i]);         }         System.out.println();     } }
点赞 评论

相关推荐

牛客网
牛客企业服务