zoukankan      html  css  js  c++  java
  • 一道简单的百度面试题遇到的问题

        

    题目描写叙述:

    依序遍历0到100闭区间内全部的正整数。假设该数字能被3整除,则输出该数字及‘*’标记;假设该数字能被5整除。则输出该数字及‘#’标记;假设该数字既能被3整除又能被5整除。则输出该数字及‘*#’标记。

    提示:

    这道看似很easy的题目。却潜藏着几个玄机。面试官通过这道题,考察学生在语法、语义、语用以及算法优化方面的能力。

    现实告诉我们。通过这一道题目。就能够淘汰85%的面试者。看似残酷的考察方式,却也体现出学生在基础知识、动手能力到思维能力上的差距。

    须要注意的考察点:

    - 语法:语法的正确书写,包含格式
    - 语义:对循环、分支等语义的理解与掌握
    - 语用:对变量命名、表达式及语句的组合使用
    - 算法优化:假设要提高执行效率,能够在算法上寻找突破口,也能够採用空间换时间的通用原则。


    我的程序

    public class Test {
    	public static void main(String args[]) {
    		String result = "";
    		for(int i = 0;i<=100;i++) {
    			if(i % 3 == 0) {
    				result += i + "*";
    				if(i % 5 == 0) {
    					result += "#";
    				}
    			}
    			else if(i % 5 == 0) {
    				result = i + "#";
    			}
    			else 
    			result = i + "";
    			System.out.println(result);
    		}
    	}
    }
    


    可是输出总是不对,输出有些反复,
    为什么会这样呢,哪里出现了问题,找了好久都没发现。

    后面和学长交流了下,发现仅仅要把if(i % 3 == 0) {
    result+= i + "*";改为if(i % 3 == 0) {
    result = i + "*";就是把前面的 “+”去掉就能够了。

    1。基础知识非常重要(注意+=),公司注重基础和持续竞争能力,要多多写程序

    2,交流讨论是提高学习的效率的好方法

    3,注意细节


  • 相关阅读:
    .NET5都来了,你还不知道怎么部署到linux?最全部署方案,总有一款适合你
    一款基于.NET Core的认证授权解决方案-葫芦藤1.0开源啦
    开源项目葫芦藤:IdentityServer4的实现及其运用
    MySQL大表优化方案
    Sec-Fetch-*请求头,了解下?
    前端开发快速入门
    从零开始打造专属钉钉机器人
    打造钉钉事件分发平台之钉钉审批等事件处理
    React中的高阶组件
    浏览器本地存储方案
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7161584.html
Copyright © 2011-2022 走看看