精华内容
下载资源
问答
  • int型的数到底最大是多少

    千次阅读 2017-12-02 22:38:50
    刚才在百度知道看见一个网友问int型的数最大能存多少。这个问题其实计算机系统结构里有讲解,首先,我们要知道在计算机里怎么存储数字的。在计算机里,对数字编码有3种方式:原码、补码、反码。原码其实就是10进制...

    刚才在百度知道上看见一个网友问int型的数最大能存多少。这个问题其实计算机系统结构里有讲解,

    首先,我们要知道在计算机里怎么存储数字的。在计算机里,对数字编码有3种方式:原码、补码、反码。原码其实就是10进制数直接转2进制数的结果。比如:十进制的18,在二进制里是10010。那这里的10010就是原码。我们可以sizeof一下我们自己的电脑上int型占几个字节。我的是4个字节,也就是说只有32个位。如果一个十进制数转位二进制数位数大于32,就溢出,其实也就是存不下了。
    
    我们存数不仅仅有正数还有负数,在计算机里如何区分正数负数?我们规定最高位是符号位。为0是正,为1负。所以最高位是不可以参加计算的。比如二进制数1000最高位是符号位的话,转十进制不是8,而是-0,对就是负0(正0的二进制形式是0000)。如果给一个十进制形式的负数,如何计算它的补码?
    

    1.计算这个数绝对值的二进制表示。
    2.把2^n写成二进制形式减去这个数,得到的就是补码。
    比如:-5,
    1。5的二进制形式是:0101.最高位是符合位,为0是正。
    2. 1111-101,二进制的减法,补码就是1010.最高位是符合位,为1是负。

    反码不常用,我没有细心学。

    所以,int占32位的时候,最大可以赋值为:2147483647。也就是0x7fffffff。注意:7的二进制形式最高位为0,如果你对2147483647+1.输出的就是-2147483648。这个数是负数中最大的数,也就是int型可以表示的最小的负数。它的十六进制表示为:0x8fffffff,8的二进制形式最高位是符号位,是1,为负。

    展开全文
  • 请你找出其中最大的一个平方数是多少?注意:你需要提交的是一个10数字,不要填写任何多余内容。思路:这道题其实并不难,但是一开始由于我把思路局限在对数字的排列组合,在对99999以内的数字进行平方,然后...

    题目:
    由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。
    这其中也有很多恰好是平方数(是某个数的平方)。
    比如:1026753849,就是其中最小的一个平方数。
    请你找出其中最大的一个平方数是多少?
    注意:你需要提交的是一个10位数字,不要填写任何多余内容。

    思路:这道题其实并不难,但是一开始由于我把思路局限在对数字的排列组合上,在对99999以内的数字进行平方,然后进行判断是否相等,导致数据量很大,所以花了很长时间也没算出来。作为蓝桥杯的第一题,可以想到不需要过于复杂的算法,一般情况下暴力破解就很容易算出结果的。所以,我也参考了一些网络上的解题方法,经过微调找到了下面的代码。

    从99999开始递减,将num的平方转为char数组,然后循环遍历数组,如果出现两位相同的,就排除掉。如此直到找到一个各个 位数都不相同的,就停止循环并且输出。

    这道题吧,难度不是很大,符合第一题的难度系数。也提醒了我,换角度反向思考问题。

    package dibajie;
    
    public class one {
    	public static void main(String[] args) {
    		long num=99999;
    		boolean flag=true;
    		while(flag){
    			long res=num*num;
    			String s=res+" ";
    			char[] arr=s.toCharArray();
    			boolean bool=true;
    			for(int i=0;i<arr.length;i++){
    				for(int j=i+1;j<arr.length;j++){
    					if(arr[i]==arr[j]){
    						bool=false;
    						break;
    					}
    				}
    				if(!bool) break;
    			}
    			if(!bool){
    				num--;
    				continue;
    			}else{
    				flag=false;
    				System.out.println(res);
    			}
    		}
    		
    	//9814072356	
    		
    		
    	}
    }

    展开全文
  • 牛牛举办了一场数字游戏,有n个玩家参加这个游戏,游戏开始每个玩家选定一个数,然后将这个数写在纸(进制数,无前缀零),然后接下来对于每一个数字将其数按照非递减顺序排列,得到新的数,新数的前缀零将被忽略。...

    题目描述

    牛牛举办了一场数字游戏,有n个玩家参加这个游戏,游戏开始每个玩家选定一个数,然后将这个数写在纸上(十进制数,无前缀零),然后接下来对于每一个数字将其数位按照非递减顺序排列,得到新的数,新数的前缀零将被忽略。得到最大数字的玩家赢得这个游戏。

    输入描述:

    输入包括两行,第一行包括一个整数n(1 ≤ n ≤ 50),即玩家的人数
    第二行n个整数x[i](0 ≤ x[i] ≤ 100000),即每个玩家写下的整数。

    输出描述:

    输出一个整数,表示赢得游戏的那个玩家获得的最大数字是多少。

    示例1

    输入

    3
    9638 8210 331

    输出

    3689

    Java题解

    输入同时重新编排数字,之后一趟快排直接解决

    import java.util.*;
    public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            int len = sc.nextInt();
            int[] arr = new int[len];
            for(int i = 0; i < len; i++){
                int putNum = sc.nextInt();
                byte[] bytes = (putNum + "").getBytes();
                Arrays.sort(bytes);
                arr[i] = Integer.parseInt(new String(bytes));
            }
            Arrays.sort(arr);
            System.out.println(arr[len - 1]);
        }
    }

     

    展开全文
  • POJ 3286 How many 0's?(数位dp)

    千次阅读 2016-02-29 22:58:34
    输入n,m,求n~m范围内所有数字中,0出现总数是多少。 思路 用2034做个例子。 枚举0在个百千位上出现次数 个:个位为0时,后面不需要考虑,只需考虑前面,因为0比4小,所以前面即使取到最大也不会过限...

    题目链接POJ 3286 How many 0’s?

    题意

    输入n,m,求n~m范围内的所有数字中,0出现的总数是多少。

    思路

    用2034做个例子。
    枚举0在个十百千位上出现的次数
    个:个位为0时,后面不需要考虑,只需考虑前面,因为0比4小,所以前面即使取到最大也不会过限,所以前面可以是1~203(因为当前位是0,所以前面不能是0)。一共203种。
    十:十位为0时,前面取1~20,后面取0~9。一共123*10种。
    百:百位为0时,因为0与当前位上限0相等,所以前面取1时,后面可以取0~99,前面取2时,后面只能取0~34。一共1*100+35种。
    千位显然不能为0,所以总数为0。
    把上述思想转化为代码即可。

    代码

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <cstdio>
    #include <cstdlib>
    #include <vector>
    #include <cmath>
    #include <map>
    
    using namespace std;
    
    const int N = 10009;
    #define LL long long
    LL p[20];
    
    void init()
    {
        p[0] = 1;
        for(int i=1; i<18; i++)
            p[i] = p[i-1]*10;
    }
    
    LL solve(LL x)
    {
        if(x == -1)
            return -1;
        LL ans = 0;
        for(int i=1; ; i++)
        {
            LL l = x/p[i];
            LL r = x%p[i-1];
            LL now = x%p[i]/p[i-1];
            if(now > 0)
                ans += l*p[i-1];
            else
                ans += (l-1)*p[i-1] + r+1;
            if(p[i] > x)
                break;
        }
        return ans;
    }
    
    int main()
    {
        LL n, m;
        init();
        while(cin>>n>>m && (n!=-1 || m!=-1))
            printf("%lld\n", solve(m) - solve(n-1));
        return 0;
    }
    展开全文
  • 今天,闲来无聊,解决了一个困扰年的问题。 大概在上高一的时候。...那最大的 完全立方数是多少呢?还有4次方呢? 答案:9814072356 32461759 5764801 Current Power Number: 2 Matc...
  • 当Q0~Q3输出十位的BCD码时,DS2端输出低电平;当Q0~Q3输出百位BCD码时,DS3端输出低电平时,周而复始、循环不止。 图3-5 CD4553芯片引脚图 表3-1 CD4553功能表 输入 输出 MR CLK DIS LE L ↑ L L L ↓ L L L X...
  • 题目意思:问在区间[A,B]有多少不仅满足自身k倍数,而且其各个位数上的和(进制)也k倍数。 分析:数位dp 首先注意到1+9*9=82,即k最大只能82,所以,在大于82直接输出答案为0; dp[i][j][t]...
  • 题目这样的: 给定一个进制的正整数N,写下从1开始,到N的所有证书,然后数一下其中出现的所有"1"的个数。...书中的解法二:通过分析"小于等于N的数在每一位上可能出现1的次数"之和来得到这个结果。
  • 1游戏

    2015-05-03 17:33:00
    一,实验题目 给定一个进制的正整数,写下从1开始,到N的所有... 2、在32位整数范围内,满足条件的“F(N)=n”的最大的N是多少; 二,设计思路  规律:  每一位上都只有三种情况:0,1,2-9  第 i 位(个...
  • 1 游戏

    2015-06-17 13:59:00
    一、题目: 给定一个进制的正整数,写下从1...2.在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少。 二.设计思想。 分别算出每一位上1出现的次数,再加起来就是总的次数。 三、源程序 #include<i...
  • C++之数字计数算法

    千次阅读 2018-07-29 21:33:28
     输入n,m,求n~m范围内所有数字中,分别输出0~9出现总数是多少?  2、思路  枚举0在个百千位上出现次数  个:个位为0时,后面不需要考虑,只需考虑前面,因为0比4小,所以前面即使取到最大也不会过限...
  • “1”游戏

    2015-06-11 17:28:00
    一、实验题目 给定一个进制的正整数,写下从1开始,到N的所有... 2、在32位整数范围内,满足条件的“F(N)=n”的最大的N是多少; 二、设计思路  规律:  每一位上都只有三种情况:0,1,2-9  第 i 位(个...
  • 从左到右扫,遇到0就记录一下,遇到1之后就往后延伸20,每延伸一用一个数字记录一下当前的十进制,当这个进制数字大于当前长度+前导零数量时就break当前循环。因为这个数字呈指数增长,你长度变化赶不...
  • 当前位最大值就是它的上一个进位减1。 进制 1位最大9 两位最大99 三位最大999 八进制 一位最大7 两位最大77 三位最大777 十六进制 一位最大15 两位最大255 三位最大...
  • 1字节 = 8,所以它能表示的最大数当然是8都是1(既然2进制的数只能是0或1,如果是我们常见的10进制,那就8都为9)1字节的二进制数中,最大的数:11111111。 这个数的大小是多少呢?让我们来把它转换为进制...
  • 霍夫梯度法就是要去查找这些圆心,根据该“圆心”模向量相交数量的多少,根据阈值进行最终判断。 bilibili: 注意: 1.OpenCV霍夫圆变换函数原型为:HoughCircles(image, method, dp, ...
  • C++基数排序

    2020-11-21 23:28:53
    首先基数排序的思想,可以按照数值的个位数的大小先排一次序,并且按照顺序将数据给记录下来,然后再将数值的十位拍一次序,在前一次的基础此时的个已经有序的,将十位再排一次序的话则数组的数十位之后个位与...
  • 得到单元格编号组中最大的数或最小的数 标记出3个最大最小值 取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样...
  • 1个数

    2015-06-03 23:47:00
    1.题目: 给定一个十进制的正整数...2.在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少。 2.实现思路:  1.分别统计1-N所有数字的个位、十位、百位、千位和万位上面1的个数。如下图所示。个位上的1...
  • 柯南手机密码

    千次阅读 2018-01-22 16:42:43
    第一反应4位每位上有0~9有个数字,及10^4 有一万种可能,如何破解呢?第一反应按位顺序一位一位试,0001,0002,0003… 依次类推 缓过神又一想,4位数最大9999加上0,这不就是一万种可能吗。密码从0...
  • 将一个nnn位十进制的数,转换成2进制,然后删除2进制的最后nnn,问剩下的二进制最大的时候,进制数最小为多少。 题解 写一下0~9的2进制代码,发现只有8,94。同样进制下比较数的大小,最先比的就是位数,...
  • 找“1”个数

    2015-06-03 16:47:00
    一、题目: 给定一个进制的正整数,写下从1开始,到N的所有...在32整数范围内,满足条件的“f(N) =N”的最大的N是多少。 二 思路 总体是寻找各个位置1的个数。首先需要把数字进行拆分,这是有三种情况...
  • 一、题目 给定一个进制的正... 2、在32整数范围内,满足条件的“F(N)=n”的最大的N是多少; 三、思路 情况1:如果百位的数字为0,则可以知道百位可能出现1的次数由更高决定,比如12 013,则可以知 道...
  • 1.int(10) ,首先要知道int存储占4个字节,1个字节8bit,那4个字节就是32,1是一个二进制数,就是0或者1,那int4个字节就是32二进制数,转换成进制,如果有正负符号,最大数是2^31-1。但这里括号中10跟所占...
  • 题意:给你一个数字 n 接下来再输入一个数字 w表示w这...思路:要想数字最小,那么当然越后面该位上数字越多,对应进制数字就越小,所以考虑从后面开始贪心,每次让最大的数字成为后面为上的数 这道题目难点在于...

空空如也

空空如也

1 2 3 4 5 6
收藏数 101
精华内容 40
关键字:

十位上最大的数是多少