栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > Java面试题

遇到的java面试题记录

Java面试题 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

遇到的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)
;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/263619.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号