美文网首页
java经典50编程题(1-10)

java经典50编程题(1-10)

作者: iamzzz | 来源:发表于2017-12-06 01:43 被阅读0次
    1.有一对兔子从出生后第三个月起,每个月都生一对小兔子,小兔子长到三个月后每个月又生一对兔子,假设兔子不死亡,问每个月兔子的总数为多少?

    分析过程

    java经典50编程题(1-10)

    示例代码

    java经典50编程题(1-10)

    运行结果

    java经典50编程题(1-10)

    反思拓展:一开始我以为这就是菲波那切数列问题,后来看了看,好像不是,仔细分析以后,有了那个思考过程,发现又是菲波那切数列。

    2.请输出101-202之间所有的素数。

    分析过程:素数是它只能因式分解为1和它本身的乘积。也就是说素数不能被2到它本身的这些数整除。其中它的根方到它本身这些数不用计算,只需要判断它能否被2到它的根方这些数整除即可。

    示例代码

    java经典50编程题(1-10)

    运行结果

    java经典50编程题(1-10)

    反思拓展:在逻辑控制输出部分,用到了布尔值的变化来控制。值得借鉴

    3.输出所有的水仙花数。

    分析过程:水仙数首先是一个三位数,每个数位上的立方的和恰好等于这个数。从100遍历到999即可判断出来。

    示例代码

    java经典50编程题(1-10)

    运行结果

    java经典50编程题(1-10)

    反思拓展:java里面的Math里面的函数,真像c需要里面。

    4.将一个正整数分解质因数如30=2×3×5

    分析过程:正整数,首先它是非质数,从2开始除起,能够整除,再返回从2整除,不能够整除,除数变为2+1=3,重复上面步骤。后面的除数4等等的非质数的除数,因为在此之前都已经将它们的质因子除尽,在判断它们是仅仅一带而过。

    示例代码

    java经典50编程题(1-10)

    运行结果

    java经典50编程题(1-10)

    反思拓展:在最后一个质因子输出,直接判断是否与n相等。完美的将分解式表达出来。

    5.利用条件运算符的嵌套完成对应成绩等级的输出。大于等于90为A,60到89为B,小于60为C.

    分析过程:Java种的条件运算符是指如下表达式: 关系表达式 ? 表达式1 : 表达式2,用来进行逻辑判断。

    求解关系表达式,根据关系表达式的布尔值决定取值:关系表达式的值为true时取表达式1的值;关系表达式的值为false时取表达式2的值。

    1、条件运算符的优先级低于关系运算符和算术运算符,高于赋值运算符。

    2、JAVA中条件运算表达式中的关系表达式值的类型必须为布尔类型,只能是true或false。

    3、结合性也是右结合性。

    示例代码

    java经典50编程题(1-10)

    运行结果

    java经典50编程题(1-10)

    反思拓展:运算符的优先性问题,表达式的嵌套问题。在本题中,score>=90选择'A',否则则执行score>=60?'B':'C'这语句,这样就分出等级了。

    6.求两个数的最大公约数和最小公倍数。

    分析过程:辗转相除法可以求得最大公约数。举个例子演示一下这个算法的操作流程,如求1515和600的最大公约数.

    第一次:用1515除以600,商2余315;

    第二次:用600除以315,商1余285;

    第三次:用315除以285,商1余30;

    第四次:用285除以30,商9余15;

    第五次:用30除以15,商2余0。

    1515和600的最大公约数是15。

    最大公倍数为两数之积除以最大公倍数。

    示例代码

    java经典50编程题(1-10)

    运行结果

    java经典50编程题(1-10)

    反思拓展:古人智慧,发现了辗转相除法这么牛逼的算法。仰望。

    7.输入一行字符,统计其中的数字,字母,空格以及其他字符。

    分析过程:将输入的字符串转化为字符数组,遍历即可啊

    示例代码

    java经典50编程题(1-10)

    运行结果

    java经典50编程题(1-10)

    反思拓展:java内置api还是好用诶。这简单的api能写的出来,那么以后得复杂的api自己也能够写出来吗?不如看看源码。

    你有没有注意到eclipse在给出提示时,多个方法相似,但又有那么一点不同,这叫做方法重载吧,和多态真尼玛混乱。

    8.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

    分析过程:这个应该算迭代相加吧。

    示例代码

    java经典50编程题(1-10)

    运行结果

    java经典50编程题(1-10)

    反思拓展:说实话,这个我反思不到什么,我最近做了一个梦,梦见我想分析数据,然后没数据,接着去弄数据,去学了黑帽子。差不多这个流程吧。

    9.如果一个数的除了它本身以外所有因子的和恰好等于这个数,我们能称它为完全数。试输出1000以内的完全数。

    分析过程:遍历,遍历,没什么好方法

    示例代码

    java经典50编程题(1-10)

    运行结果

    java经典50编程题(1-10)

    反思拓展:像肖申克的救赎里面的人,一刻都不能停下来。最最无聊以及没状态的时候,找些简单的事来做。状态好的时候,各种复杂的东西搞起啊。哈哈哈哈

    10.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    分析过程:等比数列走起,结果为路程s=100(3-(1/2)^(n-2))高度为h=100*(1/

    2)^n

    示例代码

    java经典50编程题(1-10)

    运行结果

    java经典50编程题(1-10)

    反思拓展:在以后的有规律的表达式,数学研究工作者早就研究好相关公式,等你来调用。你要做的是理解这个公式。如果可以的话,你可以自己充当数学研究人员。前者一般水平,后者才是科学工作者。

    相关文章

      网友评论

          本文标题:java经典50编程题(1-10)

          本文链接:https://www.haomeiwen.com/subject/erohixtx.html