算法练习3---水仙花数java版

所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。

java程序代码如下:

public class ArithTest {
    public static void main(String[] args) {
        ArithTest at = new ArithTest();
        //打印所有的水仙花数
        System.out.println("水仙花数:");
        for(int a=100;a<=999;a++){
            boolean bl = at.fk(a);
            if(bl){
                System.out.println(a);
            }
        }
    /* 水仙花数
     * 所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
     * 打印所有水仙花数
     */
    public boolean fk(int a){
        int x = a/100;
        int y = a%100/10;
        int z = a%100%10;
        int k = x*x*x+y*y*y+z*z*z;
        if(a == k){
            return true;
        } else {
            return false;
        }
    }
}

执行结果如下:

水仙花数:
153
370
371
407
时间: 2024-11-08 19:40:03

算法练习3---水仙花数java版的相关文章

水仙花数 java 实现

题目描述: 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3.现在要求输出所有在m和n范围内的水仙花数. 输入 输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999). 输出 对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个

算法练习4---冒泡排序java版

冒泡排序的基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换. 借用嘻哈算法这本书中的一张图 如果有n 个数进行排序,只需将n-1 个数归位,也就是说要进行n-1 趟操作.而"每一趟"都需要从第1 位开始进行相邻两个数的比较,将较小的一个数放在后面,比较完毕后向后挪一位继续比较下面两个相邻数的大小,重复此步骤,直到最后一个尚未归位的

算法练习5---快速排序Java版

基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列. 例如 3 1 5 2 7 9 3 0 首先以3为基准数,基准数的意思就是以这个数为参考,其他数和它做比较,现在例如有两个人,分别从左边和右边开始找,右边的人要找到比基准数3小的数,左边的人找比基准数3大的数,找到以后进行交换,右边的人先开始找,例如上面的数组,右边的人从0开始找,0比3小

算法之动态规划初步(Java版)

概述: 算法的重要性是不言而喻的. 可能是你会不屑于听这样的话,是因为在我们的实际开发中,用到算法的地方真是太少了.对于这一点我并不否认,因为对于一个初级的开发者而言,算法显得太过高深了.如果我们想去实现一个功能,通常的做法就是百度或是Google.这就是为什么会有那么一句调侃之辞:我们不生产代码,我们只是代码的搬运工. 当我们已经完成了初级开发者的这一过程时,我们应该想着怎么去优化自己的代码,从而让自己的代码更加优美,也更显B格. 动规的使用场景: 动态规划是对回溯算法的一种改进. 我们知道回

经典算法二分查找循环实现Java版

二分查找 定义 二分查找(Binary Search)又称折半查找,它是一种效率较高的查找方法. 要求 (1)必须采用顺序存储结构 (2)必须按关键字大小有序排列 查找思路 首先将给定值K,与表中中间位置元素的关键字比较,若相等,返回该元素的存储位置:若不等,这所需查找的元素只能在中间数据以外的前半部分或后半部分中.然后在缩小的范围中继续进行同样的查找.如此反复直到找到为止. 适用情况 该查找方法仅适合于线性表的顺序存储结构,不适合链式存储结构,且要求元素按关键字有序排列. 优缺点 虽然二分查找

蓝桥杯 算法训练 ALGO-147 4-3水仙花数

算法训练 4-3水仙花数 时间限制:1.0s   内存限制:256.0MB 问题描述 打印所有100至999之间的水仙花数.所谓水仙花数是指满足其各位数字立方和为该数字本身的整数,例如 153=1^3+5^3+3^3. 样例输入 一个满足题目要求的输入范例.例:无 样例输出 153xxxxxx 题目解析: 这是一道简单的暴力破解的题目.只需分解出每个三位数的百位.十位和个位,然后计算其三次方是否等于该数即可. 示例代码: 1 public class Main { 2 public static

算法之水仙花数(Java语言)

概述 在数论中,水仙花数(Narcissistic number),也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯特朗数(Armstrong number) ,用来描述一个N位非负整数,其各位数字的N次方和等于该数本身. 举例 例如153.370.371及407就是三位超完全数字不变数,其各个数之立方和等于该数: 153 = 13 + 53 + 33. 370 = 33 + 73 + 03. 371 = 33 

Java算法题3.打印出所有的“水仙花数”。

[原创 转载注明出处] 题目3:打印出100-999所有的“水仙花数”. 思路: 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身. (例如:1^3 + 5^3+ 3^3 = 153) Java代码实现 1 package jichu; 2 3 public class jichu3 4 { 5 public static void main(String[] args) 6 { 7 int b, s, g; 8 for(int i = 100; i <

js算法集合(一) 水仙花数 及拓展(自幂数的判断)

js算法集合(一) ★ 最近有些朋友跟我说对js中的一些算法感到很迷惑,知道这个算法到底是怎么回事,但是就是不会用代码把它写出来,这里我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,希望能对大家有所帮助. 1.验证一个数是否为水仙花数 ①要写水仙花数的算法,我们首先来了解一下什么是水仙花数,水仙花数是指一个 3位正整数 ,它的每个位上的数字的 3次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153): ②了解了什么是水仙花数我们就开始分析该怎么下手.通过定义来看