zoukankan      html  css  js  c++  java
  • 两道笔试题的解法

    才去新公司上班,开始转VB.NET,不知道怎么开始适应,就想起以前的笔试题,直接转用VB来搞搞。
    其实题目并不难,算法都知道,但真要写出实际的函数来还真需要点耐心和细心。

    1、不使用数学转换,使用原始算法将一个10进制数字转换为16进制。
    2、计算两个大数的乘积。


    第一道不难,很快搞定

    首先是转换16进制的字符:
     1    '将数字转换为16进制的数字
     2    Public Shared Function ConvertHexChar(ByVal number As IntegerAs String
     3
     4        Select Case number
     5            Case Is < 10
     6                Return number.ToString()
     7            Case 10
     8                Return "A"
     9            Case 11
    10                Return "B"
    11            Case 12
    12                Return "C"
    13            Case 13
    14                Return "D"
    15            Case 14
    16                Return "E"
    17            Case 15
    18                Return "F"
    19        End Select
    20
    21    End Function


    然后用除法递规取余数,最后表现出来即可

     1    Private Const normal As Integer = 10
     2    Private Const divisor As Integer = 16
     3
     4    Public Shared Function ConvertToHex(ByVal number As IntegerAs String
     5
     6        Dim quotient As Integer
     7        Dim reminder As Integer
     8        Dim resultStack As New Stack
     9        Dim result As String
    10
    11        Do
    12            quotient = number \ divisor
    13            reminder = number Mod divisor
    14            resultStack.Push(ConvertHexChar(reminder))
    15            number = quotient
    16        Loop While quotient > 0
    17
    18        While resultStack.Count > 0
    19            result = result & (resultStack.Pop())
    20        End While
    21
    22        Return result
    23
    24    End Function


    第二题使用字符数组存储,使用加法计算是必然的。但是,我查了好多资料都是说直接以一个数按位数与另一个数相乘,这点上偶不敢苟同。按我的想法是首先必须写两个大数的加法,然后按位数的乘法转换为这种加法来计算。当然,我不知道能不能使用到位运算符,要是能用到效率将更高。

    第二题暂没有测试好的程序,以后贴出。
  • 相关阅读:
    四层架构设计实践
    看看node.js chat程序如何实现Ajax longpolling长链接刷新模式
    模仿igoogle【定制化、拖动排序,最大化、分屏】
    安装和配置Apache
    好书推荐《Pro ASP.NET MVC 3 Framework 3rd Edition》
    GAC和VS引用的程序集不一致?
    不要在 ASP.NET 4.5 Beta 的 Page 类事件上直接使用 async 与 await
    使用事务自动回滚来实现单元测试
    C# 如何异步查询数据库
    Linq + Jquery + Ajax 实现异步分页,批量删除,单个删除,全选,反选 ……
  • 原文地址:https://www.cnblogs.com/gamix/p/292572.html
Copyright © 2011-2022 走看看