几个数字求乘积最大或者最小,思路是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几个数字求乘积最大或者最小,思路是啥相关的知识,希望对你有一定的参考价值。

例如求12345678,8个数字组成两个四位数,要使乘积最大或者最小,怎么样思考。要求小学六年级学生能接受的思路。或者有固定的解题方法也可
真心不满意。8642*7531就是最大?不会吧。
随便输入了一下8642*7531=65082902
8521*7643=65126003
感谢另一位网友的解答。我把位数提高就是为了寻找方法。
但非常感谢。。。。

小学肯定不会有8位数的了,一般是4个或者5个,让学生锻炼一下乘法的能力。

大数放在第一个,比如12345 5和4一定要放在两个相乘数的第一位上,剩下的也没几种配合了,算一下就行了,531*42 532*41 521*43就这三种了。

学数学的小窍门

1、学数学要善于思考,自己想出来的答案远比别人讲出来的答案印象深刻。

2、课前要做好预习,这样上数学课时才能把不会的知识点更好的消化吸收掉。

3、数学公式一定要记熟,并且还要会推导,能举一反三。

4、学好数学最基础的就是把课本知识点及课后习题都掌握好。

5、数学80%的分数来源于基础知识,20%的分数属于难点,所以考120分并不难。

6、数学需要沉下心去做,浮躁的人很难学好数学,踏踏实实做题才是硬道理。

参考技术A 首先,最大的两个数肯定要分别放在两个四位数的第一位,8XXX*7XXX,剩下几个数里面的最大的5和6放在第二位上,然后3和4放在第三位上,1和2放在第四位上。剩下几个数要跟在8后面还是7后面,规律就是这两个四位数的相减的差最小,那样相乘的积就是最大。
可以先比较前两位数,确认5和6是跟在8后面还是7后面,85-76=9,86-75=11,相减的差最小相乘的积才最大,85和76的差最小,所以可以确定第二位了,85XX和76XX。
第一位和第二位都确认好了,然后确认第三位,确认3和4是跟在85后面还是76后面。和前面规律一样,853-764=89,854-763=91,853和764的差最小,相乘的积就是最大,这两个四位数的前三位分别是853X和764X。
最后一位同样规律,8531-7642=889,8532-7641=891,8531和7642的差最小,那它们相乘的积就是最大,这样就确认好了乘积最大的这两个四位数了。8531*7642=65193902。
乘积最小不是乘积最大的数直接反向写就对了,最大的两个数的乘积8531*7642=65193902,反向写1358*2467=3350186,而1357*2468=3349076,乘积更小一些。和乘积最大方法一样,最小的1和2这两个数放四位数的第一位,3和4第二位,5和6第三位,7和8第四位,剩下几个数要跟在1后面还是2后面,这个规律和最大乘积那个规律反过来就行,两个四位数的相减的差最大,那样相乘的积就是最小。确认345678跟在1还是2的后面,方法可以和上面一样,可以先是前两位比较,再三位比较,最后四位比较,相减的差大一些,乘积就会小一些。
第二位数跟在1和2后面的是3或是4,13和24相差11,14和23相差9,13和24相减的差大,所以确认前两位就是13和24。
第三位5和6跟在前两位后面有135和246,或者是136和245,135和246相差111,136和245相差109,相减的差大一些,乘积就会小一些,所以确认前三位就是135和246。
第四位7和8跟在前三位数后面有1357和2468,或者是1358和2467,1357和2468相减的差是1111,乘积是3349076。1358和2467相减的差是1109,乘积是3350186。1357和2468相减的差最大,所以乘积最小。
水平有限,不知是否表述清楚了,不对的地方请指正。
参考技术B 小学肯定不会有8位数的了。 一般是4个或者5个,让学生锻炼一下乘法的能力。
大数放在第一个。比如 12345 5和4一定要放在两个相乘数的第一位上
剩下的也没几种配合了,算一下就行了。 531*42 532*41 521*43 就这三种了,算一下就知道了。
参考技术C 你好 首先 如果是最大 那么 两个数最大相乘才是最大 所以 要两个数是最大的 及 就是 8642 x 7531 如果是 最小 反之 ok

求两个乘积最小的数

(一)题目: 求两个乘积最小的数 

  题目:
输入一个递增排序的数组和一个数字S,在数组中查找两个数,
使得他们的和正好是S,如果有多对数字的和等于S,输出乘积最小的两个数

思路:
定义两个指针,分别从前面和后面进行遍历,间隔越远的乘积越小,所以是最先出现的两个数乘积最小

(二)代码及测试

package com.example.offer;

import java.util.ArrayList;

/**
 * 求两个乘积最小的数
 *
 * 题目:
 *    输入一个递增排序的数组和一个数字S,在数组中查找两个数,
 * 使得他们的和正好是S,如果有多对数字的和等于S,输出乘积最小的两个数
 *
 * 思路:
 *    定义两个指针,分别从前面和后面进行遍历,间隔越远的乘积越小,所以是最先出现的两个数乘积最小
 * @author zhangchaocai
 * @create 2020-06-28 9:55
 */
public class offer1 {

    public static void main(String[] args) {

        //数组定义的三种方式,写的时候,突然忘了怎么定义,复习一下。擦擦擦
        // 第一种 int[] a = new int[10];
        // for(int i = 0; i < a.length ; i++){
        //     a[i] = i;
        // }

        // 第二种
        //int[] b = new int[]{0, 1, 2, 3, 4, 5, 6};

        //第三种
        int[] array = {1,2,3,4,5,6,7,8,9,10};
        int sum = 12;
        ArrayList<Integer> numberWithSum = getNumberWithSum(array, sum);

        System.out.println("成立的数字为: " + numberWithSum);
    }


    public static ArrayList<Integer> getNumberWithSum(int array[],int sum){

        ArrayList<Integer> list = new ArrayList<>();
        if (array == null || array.length == 0) {
            return list;
        }

        int left = 0;
        int right = array.length - 1;

        while (left < right){
            int s = array[left] + array[right];

            if(s == sum){
                list.add(array[left]);
                list.add(array[right]);
                return list;
            }else{
                if(s > sum){
                    right--;
                }else{
                    left++;
                }
            }
        }
        return list;
    }
}

 (三)运行结果

   

 

 

 


 

 

 

      去做想做的

          快乐......

 

以上是关于几个数字求乘积最大或者最小,思路是啥的主要内容,如果未能解决你的问题,请参考以下文章

求两个乘积最小的数

求最小公倍数和最大公约数

关于gcd函数解最大公约数

noip2000 乘积最大

乘积最大的子数组 动态规划

1856. 子数组最小乘积的最大值