精华内容
下载资源
问答
  • 完全平方?首先,背下1-20的平方,因为常用。然后牢记以下规律:完全平方,...凡是个为6的,其平方根个必为4或6完全平方,凡是个为9的,其平方根个必为3或7然后,对于一个比较大的整数,比如:239...

    完全平方数?

    首先,背下1-20的平方数,因为常用。

    然后牢记以下规律:

    完全平方数,凡是个位为0的,其平方根个位必为0

    完全平方数,凡是个位为1的,其平方根个位必为1或9

    完全平方数,凡是个位为4的,其平方根个位必为2或8

    完全平方数,凡是个位为5的,其平方根个位必为5

    完全平方数,凡是个位为6的,其平方根个位必为4或6

    完全平方数,凡是个位为9的,其平方根个位必为3或7

    然后,对于一个比较大的整数,比如:23916

    一共有5位数字,假设它是完全平方数,那么它的平方根应该是一个3位数,因为100的平方是最小的5位数。

    同时,这个平方根应该小于200,因为200的平方是40000比原数大。

    我们不妨取个中间数150,因为已知15的平方是225(你背了),所以很容易算出150的平方是22500,比原数小。

    同理,算出160的平方是25600,比原数大。

    所以,如果24346时一个完全平方数,它的平方根应该大于150且小于160。

    完全平方数,凡是个位为6的,其平方根个位必为4或6。

    计算154的完全平方,等于 23716 比 23916 小200,

    计算156的完全平方,等于 24336 比 23916 大420,

    所以23916不是完全平方数。

    对于一个位数较多的小数,比如:2。4336,2。43360和24。336。

    小数点后位数为单数且“最后一位不为0”的数,一定不是完全平方数;小数点后位数为偶数的数,可能是完全平方数,比如:24。336小数点后位数为3,一定不是完全平方数;

    但2。

    43360小数点后位数为5,却可能是完全平方数;

    2。4336小数点后位数为4,可能是完全平方数。

    判断一个小数是不是完全平方数比较常用的方法是“百倍扩大”也叫“移位法”,即把原数小数点向右移动“双数”位,直至小数变为整数,计算新整数的平方根,再把小数点按“百倍扩大”的次数移回,如:2。

    4336 小数点向右移动4位(两次“百倍扩大”)变为24336,计算24336的平方根(156),小数点左移两位(1。56)即为2。4336的平方根。

    分数,只要分子分母都是完全平方数,这个分数就是完全平方数,反之,只要有一个不是,这个分数就不是完全平方数。

    如果,假设,比如,你碰见一个超大的数,比如:962707421742。79527904,建议你验算一下前面的计算,因为你一定算错了什么。

    ---------------------------------------------------------------

    ???还有没有没说到的?你提出来我再补上。

    (^o^)。

    全部

    展开全文
  • 这份代码的逻辑很清晰,就是将这个数慢慢的移,每一位都进行判断最终得出结果,乍看没什么错误。并且进行测试会发现对于正整数它运行的非常好,没有什么错误,但是我们尝试一下负整数就会发现他有巨大的问题。 ...

    看到这个问题我们的第一反应就是根据二进制的位直接统计,这也是我已开始想到的,于是有了如下代码

    这份代码的逻辑很清晰,就是将这个数慢慢的移,每一位都进行判断最终得出结果,乍一看没什么错误。并且进行测试会发现对于正整数它运行的非常好,没有什么错误,但是我们尝试一下负整数就会发现他有巨大的问题。

    这里首先要提一下,计算机对负数的存储是按照其正数的补码表示的,所以进行这种简单的移位判断就不可避免的会出现错误。

    这里我们就要提到第二中解法,这种方法不金额以解决负数的问题,而且可以提高算法的效率。先看代码:

    image

    这种解法的精髓就在image这个操作上面,我们首先要考虑x和x-1的二进制的差别在哪,我们列出几个

    image

    从这些例子我们不难发现,这两个数存在着这么一个关系:x的最后一个一变成了零,其后(可能没有)的零变成了一。于是我们可以发现只要将两个数进行与操作,那么最后一个一以及它后面的就都置零了,通过判断可以进行多少次这样的操作就可以知道有多少个一。

     

    判断有多少零只需要将判断改一下就好。

     

    转载于:https://www.cnblogs.com/MrLJC/p/3527576.html

    展开全文
  • // $foo是一个整数(15) 如果想要强行转换变量类型,可以使用与C语言相同的函数settype()。 2.5 变量与常量 可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都局部变量,为了使得定义的函数中...
  • 给定一个整数N,求N!二进制表示的最低位1在第几位?例如:给定N = 3,N!= 6,那么N!的二进制表示(1 010)的最低位1在第二位。 为了得到更好的解法,首先要对题目进行一下转化。 首先来看一下一个二进制除以...

    要求的是N!的二进制表示中最低位1的位置。给定一个整数N,求N!二进制表示的最低位1在第几位?例如:给定N = 3,N!= 6,那么N!的二进制表示(1 010)的最低位1在第二位。

            为了得到更好的解法,首先要对题目进行一下转化。

    首先来看一下一个二进制数除以2的计算过程和结果是怎样的。

           把一个二进制数除以2,实际过程如下:

           判断最后一个二进制位是否为0,若为0,则将此二进制数右移一位,即为商值(为什么);反之,若为1,则说明这个二进制数是奇数,无法被2整除(这又是为什么)。

          所以,这个问题实际上等同于求N!含有质因数2的个数+1。即答案等于N!含有质因数2的个数加1。 实际上N!都为偶数,因为质因数里面都有一个2,除了1以外,因为1的阶乘是1,是个奇数,其他数的阶乘都是偶数。。

    【问题2的解法一】

    由于N! 中含有质因数2的个数,等于 N/2 + N/4 + N/8 + N/16 + …[1],

    根据上述分析,得到具体算法,如下所示:

     

    int lowestOne(int num)
    {
        int res=0;
        while(num)
        {
            num>>=1;
            res+=num;
        }
        return res+1;//m为n!中质因数2的个数,所以最后结果要加 1 
    }

     

    转载于:https://www.cnblogs.com/wft1990/p/7472163.html

    展开全文
  • 你必须知道的495C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    6.22 如何在一个文件中判断声明为extern的数组的大小(例如,数组定义和大小在另一个文件中)?sizeof操作符似乎不行。 6.23 sizeof返回的大小以字节计算的,怎样才能判断数组中有多少个元素呢? 第7章 内存...
  • 3.15 我要检查一个数是不是在另外两个之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  • 《你必须知道的495C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.15 我要检查一个数是不是在另外两个之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  • 你必须知道的495C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    4.9 我怎样一个int 变量转换为char * 型?我试了类型转换, 但是不 行。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5 空(null) 指针21 5.1 臭名昭著的空指针到底什么? . . . . . ...
  • 5.2l 怎样判断一个程序用C编译程序环用C++编译程序编译的? 5.22 预处理指令#pragma有什么作用? 5.23 #line有什么作用? 5.24 标准预定义宏_FILE_有什么作用? 5.25 怎样在程序中打印源文件名? 5.26 ...
  • C语言编程要点

    2017-09-18 00:10:37
    5.21. 怎样判断一个程序用C编译程序还是用C++编译程序编译的? 89 5.22. 预处理指令#pragma有什么作用? 89 5.23. #line有什么作用? 90 5.24. 标准预定义宏__FILE__有什么作用? 90 5.25. 怎样在程序中打印源文件名? ...
  • 淘宝笔试题

    2011-03-11 22:45:09
    给定一个整数,可以有三种操作:除2,加1和减1。怎样能在最少的步骤里把这个减小到1。 先把给定的整数转成二进制,如果未位是0。那么直接把它去掉,这就是十进制里的除2。如果未位是1,就从后面开始判断个连续...
    给定一个整数,可以有三种操作:除2,加1和减1。怎样能在最少的步骤里把这个数减小到1。
    先把给定的整数转成二进制,如果未位是0。那么直接把它去掉,这就是十进制里的除2。如果未位是1,就从后面开始判断有几个连续的1,如果1的连续个数超过1,那么就加1,否则减1,这样做的目的是尽可能地多出现些0。

    程序代码如下:

    public class DivNumber {

    public void divNumber(int num) {
    int bnum = Integer.parseInt(Integer.toBinaryString(num));
    System.out.println("bnum=" + num);
    while (bnum != 1) {
    if (bnum % 2 == 0) {
    bnum /= 10;
    num /= 2;
    System.out.println("n/2 " + num);
    } else {
    String str = Integer.valueOf(bnum).toString();
    int count = 0;
    for (int i = str.length() - 1; i >= 0; i--) {
    if (str.charAt(i) != '0') {
    count++;
    } else {
    break;
    }
    }
    if (count > 1) {
    bnum = Integer.parseInt(Integer.toBinaryString((Integer
    .parseInt(bnum + "", 2)) + 1));
    System.out.println("n++ " + ++num);
    } else {
    bnum--;
    System.out.println("n-- " + --num);
    }
    }
    }
    }

    public static void main(String[] args) {
    new DivNumber().divNumber(105);
    }
    }

    数据库题大概是说100台服务器的机群,有20个接口可以对它们进行访问,要计算每分钟的平均访问量,并把数据存到数据库。还说明了,每秒的访问量都是上千万次。
    问题有4个:第1个是画出系统的概要设计,第2个是设计表结构并说明用途,第3个是怎么把数据存到数据库,第4个好像是如果视图查询速度变慢,可能是什么原因,用什么方法去定位哪出问题

    第二部分是专业部分 java方面

    就几个改错题,考了MAP是否内部排序,子类与父类初始化顺序,还有几个简单的就不说了

    Map内部排序的题目还记得些,问输出是“123”,还是“321”,还是不确定。答案是不确定,Map内部使用Hash进行排序,具体Map怎么排序还不太明确

    public class TestMap {

    private Map<String, String> map = new HashMap<String, String>();

    public void testMap() {
    map.put(System.currentTimeMillis() + "a", "1");
    map.put(System.currentTimeMillis() + "b", "2");
    map.put(System.currentTimeMillis() + "c", "3");
    for (Entry en : map.entrySet()) {
    System.out.println(en.getValue());
    }
    }

    public static void main(String[] args) {
    new TestMap().testMap();
    }
    }
    展开全文
  • 练习P20入门版答案

    2018-04-20 10:51:04
    四个班的班长都说不是自己班做的,这就难坏了校长,后来得知四个班的班长中有两个 说得真话,有两个没有说真话,请你利用计算机的逻辑判断一个程序,找出究竟哪个 班做了这件好事。不能手算后直接打印结果。 ...
  • 如何提取一串数字中的几位数字(字符) 如何把一个单元格中的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本中的前几个字符去除 对一列中的文字统一去掉...
  • 1.3.5 给定一个整数数组和一个整数,返回两个数组的索引,这两个索引指向的数字的加和等于指定的整数。需要最优的算法,分析算法的空间和时间复杂度 1.3.6 假如给你一个新产品,你将从哪些方面来保障它的质量? ...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    如何提取一串数字中的几位数字(字符) 如何把一个单元格中的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本中的前几个字符去除 对一列中的文字统一去掉...
  • o 5.9 我怎样一个 int 变量转换为 char * 型?我试了类型转换, 但是不行。 * 6. 空 (null) 指针 o 6.1 臭名昭著的空指针到底什么? o 6.2 怎样在程序里获得一个空指针? o 6.3 用缩写的指针比较 ``if(p)...
  • C++程序员面试宝典

    热门讨论 2013-04-01 13:36:19
    面试题126 一个类可以访问另一个类的私有成员吗 137 11.4 函数重载 138 面试题127 函数重载与作用域 138 面试题128 如何进行函数重载的匹配 139 面试题129 函数重载时如何实现实参的类型转换 140 第12章 模板与STL...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    判断一个文件或目录是否存在 如何读写文件 7.Java多态的实现(继承、重载、覆盖) 8.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。 9.Java中访问数据库的步骤,Statement和...
  • 算法一切程序设计的基础和灵魂,更是一位程序员编程水平高低的集中体现。 涵盖广泛:精炼的理论讲述嵌入经典算法示例,学习查询兼而有之。 阐述到位:算法思想、算法实现和经典面试题合理搭配,相辅相成。 实例...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0237 如何实现一个应用程序只能打开一个进程 158 7.4 其他数据处理技术 159 0238 对计算结果四舍五入 159 0239 获取一个字符的ASCII值 159 0240 判断字符串中是否有文字符 160 0241 如何从字符串中提取...
  • 0237 如何实现一个应用程序只能打开一个进程 158 7.4 其他数据处理技术 159 0238 对计算结果四舍五入 159 0239 获取一个字符的ASCII值 159 0240 判断字符串中是否有文字符 160 0241 如何从字符串中提取...
  • 0237 如何实现一个应用程序只能打开一个进程 158 7.4 其他数据处理技术 159 0238 对计算结果四舍五入 159 0239 获取一个字符的ASCII值 159 0240 判断字符串中是否有文字符 160 0241 如何从字符串中提取...
  • 0237 如何实现一个应用程序只能打开一个进程 158 7.4 其他数据处理技术 159 0238 对计算结果四舍五入 159 0239 获取一个字符的ASCII值 159 0240 判断字符串中是否有文字符 160 0241 如何从字符串中提取...
  • 0237 如何实现一个应用程序只能打开一个进程 158 7.4 其他数据处理技术 159 0238 对计算结果四舍五入 159 0239 获取一个字符的ASCII值 159 0240 判断字符串中是否有文字符 160 0241 如何从字符串中提取...

空空如也

空空如也

1 2 3
收藏数 47
精华内容 18
关键字:

怎样判断一个整数是几位数