精华内容
下载资源
问答
  • 2021-01-30 04:20:39

    【判断题】不可以在同一台计算机上安装多个Python版本。

    【单选题】关于Python程序格式框架的描述,以下选项中错误的是( )。

    【判断题】5 是因数, 8 是倍数. ( )

    【简答题】1.病毒形态和结构?

    【判断题】一个自然数越大,它的因数个数就越多. ( )

    【判断题】Python是一种跨平台、开源、免费的高级动态编程语言。

    【听力题】

    【判断题】36 的全部因数是 2 、 3 、 4 、 6 、 9 、 12 和 18 ,共有 7 个

    【单选题】2.讲究礼仪的原因,用一句话概括为

    【填空题】《陌上桑》叙述女主人公( )以夸夫的方式巧妙拒绝好色的使君。

    【填空题】表现贫民意欲反抗的汉乐府诗是( )。

    【判断题】扩展库os中的方法remove()可以删除带有只读属性的文件。

    【简答题】测验3. 图示阶梯杆的总变形(绝对)为?

    【其它】编程实现:输入一个三位数,输出其百位、十位、个位上的数字。

    【判断题】任何自然数,它的最大因数和最小倍数都是它本身. ( )

    【填空题】5×7=35 ,( )是( )的倍数, ( )是( )的倍数。

    【判断题】因为 18÷9=2 ,所以 18 是倍数, 9 是因数. ( )

    【单选题】读图2,回答第7~10题。 10.下列措施有利于促进区域环境保护的是

    【填空题】借战死者诉说战争灾难的汉乐府诗是( )。

    【填空题】9×10=90 ,( )是( )的倍数,( )是( )的因数。

    【判断题】pip命令也支持扩展名为.whl的文件直接安装Python扩展库。

    【判断题】25÷10=2.5 ,商没有余数,所以 25 能被 10 整除. ( )

    【单选题】读图1,回答第2~6题。 5.大气中含量虽很少,但却是影响天气变化的重要物质是

    【简答题】63页2,-3+2i

    【单选题】关于结构化程序设计方法原则的描述,以下选项中错误的是( )。

    【判断题】因为 1.2÷0.6=2 ,所以 1.2 能够被 0.6 整除. ( )

    【单选题】以下选项中,说法不正确的是( )。

    【判断题】任何一个自然数最少有两个因数. ( )

    【单选题】关于算法的描述,以下选项中错误的是( )。

    【单选题】读图2,回答第7~10题。 8. 能够使人类免受烈日煎熬的作用是

    【单选题】读图1,回答第2~6题。 3. 《天空》中“雨飘”的主要原因是

    【判断题】15 的倍数有 15 、 30 、 45 . ( )

    【单选题】1. 大气圈

    【单选题】读图2,回答第7~10题。 9.大气热量的根本来源是

    【判断题】在Windows平台上编写的Python程序无法在Unix平台运行。

    【多选题】学习商务礼仪的目的是

    【填空题】北宋郭茂倩编的《 》,将汉至唐的乐府诗按音乐分为十二类,涉及汉乐府的主要是郊庙歌辞、鼓吹曲辞、相和歌辞、舞曲歌辞、杂曲歌辞、杂歌谣辞六类。

    【单选题】读图1,回答第2~6题。 2.《天空》中“风起、云动、雨飘”发生在

    【判断题】Python 3.x和Python 2.x唯一的区别就是:print在Python 2.x中是输出语句,而在Python 3.x中是输出函数。

    【单选题】IDLE环境的退出命令是( )。

    【其它】编程实现:在屏幕上输出中文字符“你好,世界”。(输出结果中不带双引号)

    【判断题】一个数如果能被 24 整除,则这个数一定是 4 和 8 的倍数. ( )

    【判断题】一个数的倍数一定大于这个数的因数. ( )

    【单选题】读图2,回答第7~10题。 7. “天空”能够散发温暖的辐射是

    【填空题】讲述焦仲卿与刘兰芝恩爱故事的汉乐府诗是《 》。

    【判断题】一个数的因数的个数是有限的,一个数的倍数的个数是无限的. ( )

    【填空题】14-7=( ) 11-6=( ) 11-7=( ) 13-7=( )

    【判断题】Python 3.x完全兼容Python 2.x。

    【单选题】读图1,回答第2~6题。 4.能够保护人类免受紫外线伤害的臭氧集中在

    【单选题】读图1,回答第2~6题。 6. 以下各圈层对人类活动影响,叙述正确的是

    更多相关内容
  • 即:任意一个四位数,只要它们各个位上数字是不全相同的,就有这样的规律: (1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数; (2)将组成该四位数的四个数字由小到大排列,形成...

    题目描述:
    *验证卡布列克运算。即:任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:
    (1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;
    (2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数字中含有0,则得到的数不足四位);
    (3)求两个数的差,得到一个新的四位数(高位零保留)。
    重复以上过程,最后得到的结果总是6174。这个数被称为卡布列克常数。请编写一个递归函数,完成以上的卡布列克运算。
    **输入格式要求:"%d" 提示信息:“Enter number:”
    **输出格式要求:" [%d]:%d-%d=%d\n"
    程序运行示例如下:
    Enter number: 1234
    [1]:4321-1234=3087
    [2]:8730-378=8352
    [3]:8532-2358=6174

    在这里插入图片描述

    参考代码:

    #include <stdio.h>
    int count=0;
    main()
    {
        int n;
        printf("Enter number:");
        scanf("%d",&n);
        vr6174(n);
    }
    vr6174(int num)
    {
        int each[4],max,min;
        if(num!=6174&&num)
        {
            parse_sort(num,each);
            max_min(each,&max,&min);
            num=max-min;
            printf(" [%d]:%d-%d=%d\n",++count,max,min,num);
            vr6174(num);
        }
    }
    parse_sort(int num,int *each)
    {
        int i,*j,*k,temp;
        for(i=0;i<=4;i++)
        {
            j=each+3-i;
            *j=num%10;
            num/=10;
        }
        for(i=0;i<3;i++)
            for(j=each,k=each+1;j<each+3-i;j++,k++)
                if(*j>*k)
                {   temp=*j; *j=*k; *k=temp;}
        return;
    }
    max_min(int *each,int *max,int *min)
    {
        int *i;
        *min=0;
        for(i=each;i<each+4;i++)
            *min=*min*10+*i;
        *max=0;
        for(i=each+3;i>=each;i--)
            *max=*max*10+*i;
        return;
    }
    
    

    以上就是对于本题的解题思路了,如果你觉得我的文章对你有用请点个赞支持一下吧。如果此文章有错误或者有不同的见解欢迎评论或者私信。wink~
    在这里插入图片描述

    展开全文
  • 题目:给定一以字符串表示的非负整数num,移除这数中的任意 k 位数字,使得剩下的数字最小。 注意:剩余数字的前导0要删除,如果最后结果是空串,则需要返回 "0"。 工具/原料 Eclipse JDK1.8 方法...

    题目:给定一个以字符串表示的非负整数 num,移除这个数中的任意 k 位数字,使得剩下的数字最小。

    注意:剩余数字的前导0要删除,如果最后结果是空串,则需要返回 "0"。

    详解如何从数字串中移除K位数字使剩余数字最小

    工具/原料

    • Eclipse

    • JDK1.8

    方法/步骤

    1. 对于两个位数相同的数字:axxx 和 bxxx,如果 a >b ,则一定 axxx > bxxx,所以要想获取最小值,高位一定要小,基于次,算法思想如下:

      1. 从左向右,遍历数字串,并入栈,不断移除大于当前数字的栈顶数字;

      2. 注意,基于第1步的操作,当遇到0,会移除栈中所有数字,因此 0 不入栈;

      3. 遍历完毕,如果还未移除 k 位数字,则将栈顶元素弹出剩余位数即可;

      4. 通过栈中剩余数字和串中剩余数字,构建最后的返回数字串。

      详解如何从数字串中移除K位数字使剩余数字最小

    2. 编写本地测试代码。

      详解如何从数字串中移除K位数字使剩余数字最小

    3. 运行本地测试主方法,观察控制台输出,符合预期,本地测试通过。

      详解如何从数字串中移除K位数字使剩余数字最小

    4. 平台提交算法,测试通过。

      详解如何从数字串中移除K位数字使剩余数字最小

    展开全文
  • 原文:微信公众号:程序员小灰——删去k个数字后的最小值 1 题目 给定一整数,从该整数中去掉 k 个数字,使剩下的数字...一个数字移除 1 后肯定会变小,问题是变小多少,最简单直接的方法是移除掉最后一,...

    原文:微信公众号:程序员小灰——删去k个数字后的最小值

    1 题目

    给定一个整数,从该整数中去掉 k 个数字,使剩下的数字组成的新整数尽可能小,那么应该选择去掉的数字。

    2 思路

    感觉这是个挺有意思的问题,所以当时认真的读了读也认真的想了想,真是不想不知道,一想才发现算法真的分优劣。首先这个题目是什么意思呢?一个数字移除 1 位后肯定会变小,问题是变小多少,最简单直接的方法是移除掉最后一位,那么会变小 10 倍左右,假如有一个 5 位整数 54127,移除 1 位数字如果移除最后一位变成 5412,变小了 10 倍左右,但是这肯定不是最小的。移除 1 位后变成 4 位整数,既然位数一样,那么肯定是高位的数字越小结果就越小,对于 54127 显然移除第一位变成 4127 是最小的,变小了 13倍左右。

    那么是不是移除第一位一定是最小的呢?也不是,假设有一个 5 位整数 45127,移除 1 位数字如果移除最后一位变成 4512,变小了 10 倍左右,如果移除第一位变成 5127,最高位反而升高了,只变小了 8.8 倍左右,还不如移除最后一位,所以我们选择去掉的数字的原则应该是原整数的所有数字从左到右进行比较,如果发现某一位的数字大于它右面的数字,那么在删除该数字后,必然会使得该数位的值降低,因为右面比它小的数字顶替了它的位置。

    再给一个例子,假如有一个整数 541270936,需要移除 3 个数字,按照上面的原则,第一个去掉的应该是 5,因为 5>4,;第二个去掉的应该是 4,因为 4>1,第三个去掉的应该是 7,因为 1<2,2<7,7>0,所以 541270936 去掉 3 个数字后得到的最小整数应该是 120936。

    而且注意一下,假如有一个整数 30200,需要移除 1 个数字,按照上面的原则,应该去掉第一个数字 3,然后剩下的数字为 0200,我们应该记录为 200,所以我们要考虑处理后的数字前面要去掉 0 的情况。

    3 代码实现

    理清思路后,就来简单用代码实现一下这个算法,

        @Test
        public void testRemoveKDigits() {
            removeKDigits1("541270936", 3);
        }
    
        /**
         * author:MrQinshou
         * Description:初版,以 k 为外层循环,每次外循环再去遍历全部字符串,每次删除一个数字
         * date:2018/11/27 20:21
         * param
         * return
         */
        public static String removeKDigits1(String string, int k) {
            // 以删除多少位为外层循环
            for (int i = 0; i < k; i++) {
                // 定义一个标志位记录是否有高位的数字被删除
                boolean hasCut = false;
                // 每次循环遍历目标字符串的所有字符
                for (int j = 0; j < string.length() - 1; j++) {
                    char a = string.charAt(j);
                    char b = string.charAt(j + 1);
                    // 如果当前字符(高位数字)比下一个字符(低位数字)要大
                    // 则截取字符串,并置标志位为 true
                    if (a > b) {
                        string = string.substring(0, j) + string.substring(j + 1, string.length());
                        hasCut = true;
                        break;
                    }
                }
                // 如果没有高位数字被删除,则删除最后一个数字
                if (!hasCut) {
                    string = string.substring(0, string.length() - 1);
                }
                // 去掉前面的 0
                string = removeZero(string);
                System.out.println("string--->" + string);
            }
            if (string.length() == 0) {
                System.out.println("删除 " + k + " 个数字后的最小值--->" + 0);
                return "0";
            }
            System.out.println("删除 " + k + " 个数字后的最小值--->" + string);
            return string;
        }
    
        /**
         * author:MrQinshou
         * Description:去掉字符串前面的 0
         * date:2018/11/27 20:23
         * param
         * return
         */
        private static String removeZero(String string) {
            for (int i = 0; i < string.length() - 1; i++) {
                if (string.charAt(0) != '0') {
                    break;
                }
                string = string.substring(1, string.length());
            }
            return string;
        }

    运行一下打印如下:

    结果是木有任何问题的,LeeCode 上有这道题,移掉 K 位数字,放到上面是玩耍一下(记得注释掉打印):

    貌似效率是有点低呀,接着往下看发现智慧与美貌并存的小灰介绍了另外一种方式来解答该题目。

    4 优化

    原整数的长度记为 n,上面的算法因为外层循环 k 次,内层循环每次为 n 次,时间复杂度为 O(kn),最坏的情况下 k=n,则时间复杂度为 O(n²)。我们可以换一种思路,不让它嵌套循环,只遍历原整数一遍,用一个栈来存放所有数字,让数字一个个入栈,然后当入栈的数字比前面的数字要小时,则让前面的数字出栈,最后把栈内元素去掉 0 再处理成字符串,变成我们想要的结果。

        /**
         * author:MrQinshou
         * Description:最终版,用栈来实现
         * date:2018/11/27 20:23
         * param
         * return
         */
        public static String removeKDigits(String string, int k) {
            // 创建一个栈,用于接收所有的数字
            char[] stack = new char[string.length()];
            int top = 0;
            // 定于一个 copyK 等于 k,用于记录需要移除多少位数字,也就是需要
            // 出栈多少次,k 在最后还要用于确定新整数的长度,所以不要直接
            // 操作 k
            int copyK = k;
            for (int i = 0; i < string.length(); i++) {
                // 前一个数字大于当前数字时并且还有剩余次数,前一个数字出栈,栈顶指针前移
                // 注意这里是 while 不能是 if,如整数 45127,k=2 时,当指针
                // 指向数字 1 时,如果用 if,只会比较一次,让前一个数字 5 出
                // 栈,但 1 仍小于 4,所以 4 也应该出栈,所以需要用 while
                // 比较完前面所有数字
                while (top > 0 && stack[top - 1] > string.charAt(i) && copyK > 0) {
                    top--;
                    copyK--;
                }
                stack[top] = string.charAt(i);
                top++;
                System.out.println("stack--->" + Arrays.toString(stack));
            }
            // 找到栈中第一个非 0 数字的位置,以此构建新的整数字符串
            int offset = 0;
            for (int i = 0; i < stack.length; i++) {
                if (stack[offset] == '0') {
                    offset++;
                }
                // 加了 else 跳出后反而效率会降低,一脸懵逼
                // else {
                // break;
                // }
            }
            // 新整数的长度为原整数的长度减去 k
            // 如果 offset 大于等于新整数的长度,则返回 0,否则从第一个
            // 非 0 数字开始截取到与新整数长度相等的数字作为返回值
            System.out.println("删除 " + k + " 个数字后的最小值--->" + (offset >= string.length() - k ? "0" : new String(stack, offset, string.length() - k - offset)));
            return offset >= string.length() - k ? "0" : new String(stack, offset, string.length() - k - offset);
        }

    上面的遍历时的 while 要注意,不能是 if,这个问题我刚开始也纠结了好久,如整数 45127,k=2 时,当指针指向数字 1 时,如果用 if,只会比较一次,而且比 1 大的应该有 5 和 4 两个数字。

    运行结果如下:

    接下来就可以在 LeeCode 上愉快地玩耍了(记得注释掉打印),最后的去掉 0 我改成了 for 循环没有用小灰文中的 while 循环,效率还高了一点点:

    5 总结

    以前在面试中没有怎么遇到过算法题,刚开始看到这个题目的时候还觉得很有趣,等自己真的去理解思路的时候还是有点困难,特别是后面的优化,这也说明了栈这种数据结构也是蛮有用的,继续努力。

    展开全文
  • 给定一非负整数 num,移除这数中的 k 位数字,使得剩下的数字最小。 注意: num 的值小于 10^10000 且 ≥10^ k。 num 不会包含任何前导零。 示例 1 : 输入: num = 1432219, k = 3 输出: 1219 解释: 移除掉三...
  • 题目:一n的数,去掉其中的k,问怎样去掉使得留下来的那个(n-k)的数最小? 分析:(删数问题,可用贪心算法求解),方法就是从简单入手,慢慢复杂。从n=1开始推导就会发现规律, 现在假设有一数,...
  • 给定一以字符串表示的非负整数 num,移除这数中的 k 位数字,使得剩下的数字最小。 思路:单调栈(贪心+栈) class Solution { /* 单调栈的另一应用,思想为删除靠前的较大的数能够使得最后的数值最小。...
  • *给定一以字符串表示的非负整数 num,移除这数中的 k 位数字,使得剩下的数字最小 */ class Solution {  public String removeKdigits(String num, int k) {  String resullt ="";  List list =new...
  • 删除k个数字使剩下数字最小(大)

    千次阅读 2018-12-07 22:18:49
    如:1593121212去掉3数,剩下1121212最小。 思路如下: 删除k,可以采用贪心算法,每次删除1 那么每次删哪一呢? 若N&lt;2,那就不用纠结了,因为最多只有一选择 若N&gt;=2,则该整数可以写成XabY...
  • 从键盘输入一个正整数,计算并输出该数的各位数字之和具体信息答:思路:定义变量a接受键盘输入和变量sum保存a的各位数字之和,依次对a进行除10操作,并把a除10的余数加到sum中,直到a为0为止,sum最终的值就是a...
  • 微型计算机能处理的最小...比特(Binary digit),简称为Bit,是信息量的度量单位,资讯的最小单位,也指二进制数字中的一。比特由数学家John WilderTukey提出,最早在香浓着名的论文《通信的数学理论》中被正式使用...
  • 给定一以字符串表示的非负整数num,移除这数中的k位数字,使得剩下的数字最小。 注意: num的长度小于 10002 且≥k。 num不会包含任何前导零。 示例 1 : 输入: num = "1432219", k = 3 输出: "1219" 解释: ...
  • 构成存储器的最小单位是什么

    千次阅读 2021-07-29 08:10:12
    在电子计算机内,信息的最小表示单位是一二进制“”,它可以存储一二进制“0”或者“1”,而CPU访问存储器的最小单位就是8二进制数组成的“字节”。在计算机的硬件技术中,构成存储器的最小单位是字节(Byte)...
  • 寻找神秘4位数:在0-9十个数字中任意选择4个数字,如选2,9,8,4这四个数字,组成最大的数是9842,最小的数是2489,然后相减,再把得到的4位数组成的最大与最小值相减,在这样重复的过程中,你能找到一神秘的四位数...
  • 输入一数的整数,求这数每一位上数字的和是多少。例如,输入: 382,输出:和为 13。 编写 Python 程序实现上述要求更多相关问题【判断题】在T-s图,任意两条可逆绝热过程线不能相交。【单选题】人们...
  • JAVA之输出一整数的各位数字之和
  • %c:单个字符%d:十进制有符号整数%e:以“科学记数法”的形式输出十进制的浮点数%f:输出十进制浮点数,不带域宽时,保留6小数。%g:选用e或f格式中较短的输出十进制浮点数不输出零%0:无输出无符号八进制整数%p...
  • 有一字符串,仅有数字组成,现在将字符串的删除n字符,使得剩下的字符组成的数字最小,不能打乱字符的顺序。 输入样例: 1221 2 输出样例: 11 问题分析 #include <iostream> #include <string> ...
  • &lt;input type="text" placeholder="11手机号" name="telephone" maxlength='11' min="0" onkeyup="value=value.replace(/[^0-9]/g,'')"&gt;  
  • 例如:给定两 0,两 1,三 5,一 8,我们得到的最小的数就是 10015558。 现给定数字,请编写程序输出能够组成的最小的数。(题目来源PAT,侵删) 输入格式: 输入在一行中给出 10 非负整数,顺序表示我们拥有...
  • 用C语言编写程序,输入一正整数n(1#include"stdio.h"intmain(){\x09inti,j,n;...ic语言输出所有三数中各位数的立方等于这数的数#includemain(){inta=1,b=0,c=0,q;for(;aC语言编写程序:输入一正...
  • 给定n正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成⼀新的正整数。对于给定的n和k,设计⼀算法,找出剩下数字组成的新数最少的删数方案。 这一道题来自zyq老师的算法分析与设计实验当中,因为...
  • 【c++】寻找四位数的 “数字黑洞”

    千次阅读 多人点赞 2020-11-19 00:32:01
    任意一4自然数,将组成该数的各位数字重新排列,形成一最大数和一最小数, 之后两数相减,其差仍为一自然数。 重复进行上述运算,会发现一神秘的数。 描述 输入: 一4的自然数。 输出: 从该4...
  • 编程练习:使用for循环,编程求100~999之间所有的水仙花数。水仙花数是指一个n位数(n≥3),它的每个位上数字的...水仙花数是指一个n位数(n≥3),它的每个位上数字的n次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = ...
  • 位数字密码锁

    千次阅读 多人点赞 2019-11-20 11:50:48
    设计一保险箱用的4位数字密码锁,该锁有规定的地址代码A、B、C、D 4输入端和一开箱钥匙孔信号E的输入端,锁的密码由实验者自编。当用钥匙开箱时,如果输入的4密码正确,则保险箱被打开;否则,电路将发出...
  • java数字位数不足在前后补0

    千次阅读 2021-02-12 15:32:47
    java整数或数字字符串位数不足前面或后面补零的方法,一般都是使用自定义简单封装、String.format、NumberFormat等都可以实现。自定义简单封装/***数字不足位数前后补0*@paramnum参与补零的数字*@paramlen最终位数...
  • $pattern = "/^(?![A-Za-z0-9]+$)(?... 1、排除大写字母、小写字母、数字、特殊符号中1种组合、2种组合、3种组合,那么就只剩下4种都包含的组合了  2、表达式为:^(?![A-Za-z0-9]+$)(?![a-z0-9\W]+$)(?![A.
  • 数字电路写给读者 作者是华中科技大学本科生,这是我的数字电路笔记 感谢你阅读本文。...传输 串行:在计算机总线或其他数据通道,每次传输一bit 并行:所有bit同时传送BCD编码 意义:用4bit...
  • 数字重新组合成一最大的数和最小的数 相减,重复这过程,最多七步,必得6174。即:7641-1467=6174。将永远出不 来。 求证:所有四位数数字(全相同的除外),均能得到6174。输出掉进黑洞的 步数。 // 传入数据...
  • 条件: 限制最大 100,最小0,最长两小数 输入大于100,自动变为100. 超出,2小数,自动四舍五入 以下是使用全局指令的案例 (也可以使用局部指令,可以参考文档 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 286,238
精华内容 114,495
关键字:

个位上最小的数字是什么