当前位置: 首页 > news >正文

陕西网站开发公司地址免费域名怎么注册

陕西网站开发公司地址,免费域名怎么注册,燃烧学课程网站建设,百度seo优化按年收费文章目录 一、题目二、C# 题解 一、题目 请实现整数数字的乘法、减法和除法运算#xff0c;运算结果均为整数数字#xff0c;程序中只允许使用加法运算符和逻辑运算符#xff0c;允许程序中出现正负常数#xff0c;不允许使用位运算。 你的实现应该支持如下操作#xff1a… 文章目录 一、题目二、C# 题解 一、题目 请实现整数数字的乘法、减法和除法运算运算结果均为整数数字程序中只允许使用加法运算符和逻辑运算符允许程序中出现正负常数不允许使用位运算。 你的实现应该支持如下操作 Operations() 构造函数minus(a, b) 减法返回 a - bmultiply(a, b) 乘法返回 a * bdivide(a, b) 除法返回 a / b 示例 Operations operations new Operations(); operations.minus(1, 2); //返回-1 operations.multiply(3, 4); //返回12 operations.divide(5, -2); //返回-2 提示 你可以假设函数输入一定是有效的例如不会出现除法分母为0的情况单个用例的函数调用次数不会超过1000次 点击此处跳转题目。 二、C# 题解 使用常数数组 Poss 和 Negs 分别记录 2 次幂的正负值便于后续使用。 P o s s : { 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 } N e g s : { − 2 0 − 2 1 − 2 2 − 2 3 − 2 4 − 2 5 − 2 6 − 2 7 } \begin{array}{l} \hspace{0.15em}Poss:\{\hspace{0.78em} 2^0 \hspace{2.2em} 2^1 \hspace{2.25em} 2^2 \hspace{2.4em} 2^3 \hspace{2.1em} 2^4 \hspace{2.25em} 2^5 \hspace{2.25em} 2^6 \hspace{2.1em} 2^7\} \\ Negs:\{-2^0 \hspace{1em} -2^1 \hspace{1em} -2^2 \hspace{1.2em} -2^3 \hspace{0.9em} -2^4 \hspace{1em} -2^5 \hspace{1em} -2^6 \hspace{0.9em} -2^7\} \\ \end{array} Poss:{2021222324252627}Negs:{−20−21−22−23−24−25−26−27}​ Negative(int a)   如果 a 是正数则遍历负数数组 Negs如果 a 是负数则遍历正数数组 Poss。每次遍历判断相加后是否溢出如果不溢出就相加否则跳过。   溢出判断条件ans nums[i] a 与 a 异号则溢出。 a : 13 ⟵ 方向 n u m s : { − 2 0 ‾ − 2 1 − 2 2 ‾ − 2 3 ‾ − 2 4 − 2 5 − 2 6 − 2 7 } ↑ ↑ ↑ a n s : ( − 1 ) ( − 4 ) ( − 8 ) − 13 \begin{array}{l} \hspace{2em}a:13\\ \hspace{25.9em} \longleftarrow 方向\\ nums:\{\underline{\bold{-2^0}} \hspace{1em} -2^1 \hspace{1em} \underline{\bold{-2^2}} \hspace{1.2em} \underline{\bold{-2^3}} \hspace{0.9em} -2^4 \hspace{1em} -2^5 \hspace{1em} -2^6 \hspace{0.9em} -2^7\} \\ \hspace{4.5em} \uparrow \hspace{5.6em} \uparrow \hspace{2.6em} \uparrow \\ \hspace{0.9em}ans:\hspace{0.3em} (-1) \hspace{1.35em} \hspace{1.35em} (-4) \hspace{0em} \hspace{0em} (-8) \hspace{12.5em} -13\ \end{array} a:13⟵方向nums:{−20​−21−22​−23​−24−25−26−27}↑↑↑ans:(−1)(−4)(−8)−13 ​ Minus(int a, int b)   即 a Negative(b)。 Multipy(int a, int b)   类似 Negative(int a) 的思想Negative(int a) 可以看做是 Multipy(-1, int a)因此将 nums 数组扩展为 a * 2i 即可求解 a * b。在求解 -b 时记为 cnt累加 a * 2i即可得到答案。   这里需要注意 a 的符号如果 b 0需要将 a 异号。 a : 5 b : − 13 c n t : ( − 1 ) ( − 4 ) ( − 8 ) − 13 ↓ ↓ ↓ c n t s : { 2 0 ‾ 2 1 2 2 ‾ 2 3 ‾ 2 4 2 5 2 6 2 7 } ⟵ 方向 n u m s : { − 5 ∗ 2 0 ‾ − 5 ∗ 2 1 − 5 ∗ 2 2 ‾ − 5 ∗ 2 3 ‾ − 5 ∗ 2 4 − 5 ∗ 2 5 − 5 ∗ 2 6 − 5 ∗ 2 7 } ↑ ↑ ↑ a n s : ( − 5 ∗ 1 ) ( − 5 ∗ 4 ) ( − 5 ∗ 8 ) − 5 ∗ 13 \begin{array}{l} \hspace{2em}a:5 \hspace{2em} b:-13\\\\ \hspace{1.1em} cnt: \hspace{1.1em} (-1) \hspace{2.9em} \hspace{2.9em} (-4) \hspace{0.8em} \hspace{0.8em} (-8) \hspace{19em} -13\\ \hspace{5.2em} \downarrow \hspace{8.7em} \downarrow \hspace{4.2em} \downarrow \\ \hspace{0.6em} cnts: \{ \hspace{1.2em} \underline{\bold{2^0}} \hspace{3.6em} 2^1 \hspace{3.6em} \underline{\bold{2^2}} \hspace{3.6em} \underline{\bold{2^3}} \hspace{3.6em} 2^4 \hspace{3.6em} 2^5 \hspace{3.6em} 2^6 \hspace{3.6em} 2^7 \hspace{0.9em} \}\\\\ \hspace{38em} \longleftarrow 方向\\\\ nums:\{\underline{\bold{-5*2^0}} \hspace{1em} -5*2^1 \hspace{1em} \underline{\bold{-5*2^2}} \hspace{1.2em} \underline{\bold{-5*2^3}} \hspace{0.9em} -5*2^4 \hspace{1em} -5*2^5 \hspace{1em} -5*2^6 \hspace{0.9em} -5*2^7\} \\ \hspace{5.2em} \uparrow \hspace{8.7em} \uparrow \hspace{4.2em} \uparrow \\ \hspace{0.9em}ans:\hspace{0.3em} (-5*1) \hspace{2.2em} \hspace{2.2em} (-5*4) \hspace{0em} \hspace{0em} (-5*8) \hspace{18.5em} -5*13\\ \end{array} a:5b:−13cnt:(−1)(−4)(−8)−13↓↓↓cnts:{20​2122​23​24252627}⟵方向nums:{−5∗20​−5∗21−5∗22​−5∗23​−5∗24−5∗25−5∗26−5∗27}↑↑↑ans:(−5∗1)(−5∗4)(−5∗8)−5∗13​ Divide(int a, int b)   对 b 进行扩展为 nums即 nums b * Poss若 a、b 异号则 b 取反目的是使 nums 符号与 a 相同让 a 尝试依次减去 nums[i]能减则减减去后 ans 加上对应的 cnts[i]若 a、b 异号则 cnts 数组为负值反之cnts 数组为正值。是否选取第 i 个元素的条件   1. a 0则 sum nums[i] a。   2. a 0则 sum nums[i] a。 a : − 67 b : 5 a n s : ( − 1 ) ( − 4 ) ( − 8 ) − 13 ↓ ↓ ↓ c n t s : { − 2 0 ‾ − 2 1 − 2 2 ‾ − 2 3 ‾ − 2 4 − 2 5 − 2 6 − 2 7 } ⟵ 方向 n u m s : { − 5 ∗ 2 0 ‾ − 5 ∗ 2 1 − 5 ∗ 2 2 ‾ − 5 ∗ 2 3 ‾ − 5 ∗ 2 4 − 5 ∗ 2 5 − 5 ∗ 2 6 − 5 ∗ 2 7 } ↑ ↑ ↑ s u m : ( − 65 ) ← ( − 60 ) ← ( − 40 ) − 5 ∗ 13 \begin{array}{l} \hspace{2em}a:-67 \hspace{2em} b:5\\\\ \hspace{0.9em} ans: \hspace{1.1em} (-1) \hspace{2.9em} \hspace{2.9em} (-4) \hspace{0.8em} \hspace{0.8em} (-8) \hspace{19em} -13\\ \hspace{5.2em} \downarrow \hspace{8.7em} \downarrow \hspace{4.2em} \downarrow \\ \hspace{0.6em} cnts: \{ \hspace{0.8em} \underline{\bold{-2^0}} \hspace{2.6em} -2^1 \hspace{2.6em} \underline{\bold{-2^2}} \hspace{2.6em} \underline{\bold{-2^3}} \hspace{2.6em} -2^4 \hspace{2.5em} -2^5 \hspace{2.4em} -2^6 \hspace{2.4em} -2^7 \hspace{0.4em} \}\\\\ \hspace{38em} \longleftarrow 方向\\\\ nums:\{\underline{\bold{-5*2^0}} \hspace{1em} -5*2^1 \hspace{1em} \underline{\bold{-5*2^2}} \hspace{1.2em} \underline{\bold{-5*2^3}} \hspace{0.9em} -5*2^4 \hspace{1em} -5*2^5 \hspace{1em} -5*2^6 \hspace{0.9em} -5*2^7\} \\ \hspace{5.2em} \uparrow \hspace{8.7em} \uparrow \hspace{4.2em} \uparrow \\ \hspace{0.6em}sum:\hspace{0.9em} (-65) \hspace{2.5em} \leftarrow \hspace{2.5em} (-60) \hspace{0.3em} \leftarrow \hspace{0.3em} (-40) \hspace{18.8em} -5*13\\ \end{array} a:−67b:5ans:(−1)(−4)(−8)−13↓↓↓cnts:{−20​−21−22​−23​−24−25−26−27}⟵方向nums:{−5∗20​−5∗21−5∗22​−5∗23​−5∗24−5∗25−5∗26−5∗27}↑↑↑sum:(−65)←(−60)←(−40)−5∗13​ public class Operations {private static long[] Negs, Poss;private const int NEG_ONE -1;private const int ARR_LEN 32;static Operations() {long p 1, n -1;Poss new long[ARR_LEN];Negs new long[ARR_LEN];for (int i 0; i ARR_LEN; i) { // 初始化正、负数组Poss[i] p;p p;Negs[i] n;n n;}}public int Minus(int a, int b) {return (int)(a Negative(b));}public int Multiply(int a, int b) {if (a 0 || b 0) return 0;long p b 0 ? a : Negative(a), ans 0, cnt 0;long[] cnts b 0 ? Negs : Poss, nums new long[ARR_LEN];for (int i 0; i ARR_LEN; i) { // 初始化记录数组nums[i] p;p p;}// 计算 -b 的过程中同比例计算 ansfor (int i ARR_LEN NEG_ONE; i 0; i NEG_ONE) {if (SameSignal(cnt cnts[i] b, b)) {cnt cnts[i];ans nums[i];}if (cnt b 0) return (int)ans;}return (int)ans;}public int Divide(int a, int b) {if (a 0) return 0;long p SameSignal(a, b) ? b : Negative(b), sum 0, ans 0;long[] cnts SameSignal(a, b) ? Poss : Negs, nums new long[ARR_LEN];for (int i 0; i ARR_LEN; i) { // 初始化记录数组nums[i] p;p p;}for (int i ARR_LEN NEG_ONE; i 0; i NEG_ONE) {// a 0则用 判断溢出a 0则用 判断溢出if (a 0 sum nums[i] a || a 0 sum nums[i] a) {sum nums[i];ans cnts[i];}}return (int)ans;}// 求 -apublic long Negative(long a) {if (a 0) return 0;long[] nums a 0 ? Negs : Poss; // 寻找与 a 异号的数组long ans 0;for (int i ARR_LEN NEG_ONE; i 0; i NEG_ONE) { // 绝对值大 - 小遍历if (SameSignal(ans nums[i] a, a)) // ans nums[i] 未溢出则加上 nums[i]ans nums[i];if (ans a 0) return ans; // 提前返回}return ans;}// 判断 a、b 符号是否相同// 0 既看作正数也看作负数public bool SameSignal(long a, long b) {return a 0 b 0 || a 0 b 0;} }/*** Your Operations object will be instantiated and called as such:* Operations obj new Operations();* int param_1 obj.Minus(a,b);* int param_2 obj.Multiply(a,b);* int param_3 obj.Divide(a,b);*/时间104 ms击败 80.00% 使用 C# 的用户内存48.40 MB击败 0.00% 使用 C# 的用户
http://www.huolong8.cn/news/340241/

相关文章:

  • 如何建网站老鱼网企业网页制作教程和流程
  • 交友免费网站建设网络设计是啥
  • 网站空间是指什么高唐网站开发
  • 防下载 的视频网站 怎么做北流建设局网站
  • 息壤网站打不开了wordpress 游戏主题下载失败
  • 便宜点的网站空间精准营销数据
  • 上海网站建设要多少钱在建设网站入账
  • 中山网站快照优化公司建设网站号码是多少
  • 公司可以备案几个网站搭建论坛网站
  • 设计网页作业济南优化网站的哪家好
  • 银川网站建设联系电话谭木记网页制作教程
  • 乐清网站优化wordpress quiz
  • 变更网站做推广需要备案wordpress表单中文版
  • 找人做网站应该注意哪些工业设计完整作品集
  • 使用vs2015做网站教程常州高端网站建设公司哪家好
  • 公司网站销售平台建设费分录海外网络怎么搭建
  • 阿里云网站注册安宁网站建设熊掌号
  • 网页设计网站开发需要什么软件上海网站建设报价
  • 有哪些ui的设计网站wordpress虚拟资源下载博客
  • 竞价网站建设做建材一般去什么网站宣传
  • 建网站商城平台wordpress字体在哪个文件夹
  • 人工智能设计网站外贸公司网站模板免费
  • 哪些行业网站推广做的多建设银行网银盾不能打开网站
  • wordpress服务器系统seo推广优化排名软件
  • 网站预算表怎么做上海网站设计专业团队
  • 网站横向菜单做精神科网站价格
  • 如何做地图的ppt模板下载网站wordpress 自定义结构
  • 怎么样做网站才能适应手机屏幕用html做的网站加背景音乐
  • 上海网站建设广告语三星网上商城优惠码
  • 工商局注册公司网站设计制作个人网站