zoukankan      html  css  js  c++  java
  • 面试遇到的面试题分析

    今天去面试面试官出了如下题目:

    1、证明所有奇数的平方减1都为8的倍数
    //我当时的思路反了,后来经面试官提示思路如下
    所有奇数都可以表示为 2m+1 (m为一个整数)
    那么如上题目可以表示为如下式子
    (2m+1)2-1  //继续拆分
    4m2+4m+1-1
    4m2
    +4m
    4(m2+m)
    到这里只需证明括号内是一个偶数即可
    1---如果m为奇数那么m2和m则均为奇数两个奇数之和一定是偶数
    2---如果m为偶数那么m2和m则均为偶数两个偶数之和也是偶数
    偶数可以用2n(n为整数)来表示,则上述可写为
    4*2n=8n
    由此可以证明所有奇数的平方减1均为8的倍数


    2、有一个数列 1,1,2,3,5,8,13.......n 写程序求第n个数是多少。
         看到题目首先想到用递归函数实现,代码如下:
        

                 static void Main(string[] args)        
            {
                
    for (int i = 0; i < 20; i++)
                {
                    Console.WriteLine(GetN(i));
                }
                Console.Read();
            }

            
    private static int GetN(int num)
            {
                
    if (num < 2)
                {
                    
    return 1;
                }
                
    else
                {
                    
    return GetN(num - 2+ GetN(num - 1);
                }
            }

    面试官看后说要求用for循环实现代码如下:

            private static int GetN(int num)
            {
                
    int tmp1 = 0, tmp2 = 0;
                
    for (int i = 0; i <= num; i++)
                {
                    
    if (i < 2)
                    {
                        tmp1 
    = 1;
                        tmp2 
    = 1;
                    }
                    
    else
                    {
                        tmp2 
    = tmp1 + tmp2;
                        tmp1 
    = tmp2 - tmp1;
                    }
                }
                
    return tmp2;
            }

    3、f(n) = 1-2+3-4+5-6........n 写函数求f(n)的值
        分析:当n为偶数时  f(n) = (1-2)+(3-4)+(5-6)..... 如前也就是两个数的和为-1共有n/2组,结果为f(n) = -n/2
                当n为奇数时  f(n) = (1-2)+(3-4)+(5-6)+7...如果去掉最后一个奇数那么与上边结果一样那么f(n) = -(n-1/2)+n
    代码如下:

    private static int GetFN(int n)
    {
        
    return n % 2 == 0 ? -/ 2 : n-( n-1/2);
    }
  • 相关阅读:
    cocoapods的安装与使用
    HBase源代码分析之HRegion上MemStore的flsuh流程(二)
    everything of people’s life can changed in their twenties
    java 操作流的步骤
    java 流
    java 文件过滤器 java.io.FilenameFilter
    java 递归(Recursion)
    java IO的概述和File方法
    java 泛型的嵌套(map例子)
    java 泛型接口和方法
  • 原文地址:https://www.cnblogs.com/heimirror/p/1985523.html
Copyright © 2011-2022 走看看