java 实现(代码) -- 水仙花数 + 杨辉三角形

来源:互联网 发布:linux配置网络 编辑:程序博客网 时间:2024/05/29 02:26
 1 /* 2     在控制台输出所有的“水仙花数” 3     水仙花:100~999 4  5     在以上数字范围内:这个数=个位*个位*个位+十位*十位*十位+百位*百位*百位 6  7     例如:xyz=x^3 +y^3 +z^3 8  9     怎么把三位数字拆成每位整数10 11     思路:百位:    int x= i / 100    12           十位:    int y = i / 10 % 1013           个位:    int z = i % 10     14 15 */16 class LoopTest3 {17     public static void main(String[] args) 18     {19         for (int i=100; i<=999 ; i++ ){20             int x= i / 100;21             int y = i / 10 % 10;22             int z = i % 10;23             24             //本身的数字是i ,x, y, z是百位十位个位25             if (i == x* x* x+ y* y* y+ z* z* z){26                 System.out.println(i);//i=153,370,371,40727 28                 //153=1^3+ 5^3 +3^3=1 + 125+ 2729             }30         }31     }32 }

 

--------------------------------------------------------------------------------------------------------------------------------

 

 1 import java.util.Scanner; 2  3 /* 4     杨辉三角形:当前行的每个元素是当前行这个元素的上一行和上一行左侧元素的和 5      6     分析: 7              8             这个题目,使用了如下的技能点: 9                     10                     for循环:两个for循环的嵌套11                     动态数据:这个元素的上一行和上一行左侧元素的和12                     静态数据:每一行的第一列和最后一列都是:113                     14                     数组的元素可以通过下标索引快速定位,赋值15                     16                     用两个for 循环控制一个二维数组得到最终的结果17                     18         目的:19         20             拓展传智学生的视野面,不要求掌握,需要理解。能够听懂,后期完成掌握。21             22             23             1    124             1    2    125             1    3    3    126             1    4    6    4    127             1    5    10    10    5    128     29 */30 class  YangHui {31     public static void main(String[] args) {32         int [ ][ ] san = new int [6][6];33         34         //我比会做三角形,我会做矩形,赋值给三角形静态数据135         for (int i =0;  i<6;  i++){//控制行36             for (int j =0;  j<=i;  j++){//控制列37                 san[i][j] = 1;38             }39         }40         41         //做二维数组的动态数据的赋值42         for (int i =2;  i<6;  i++){43             for(int j =1;  j<=i-1;  j++){44                 //上一行现在代码都执行到这里了,还能回去吗?  可以  上一行这个数据可以用二维数组的下标定义45                 san[i][j] = san[i-1][j] + san[i-1][j-1];46             }47         }48         49         for(int i =0; i<6; i++){//控制行50             for(int j =0; j<= i; j++){//控制列51                 System.out.print( san[i][j] + " ");52             }53             System.out.println( );54         }55     }56 }

 

0 0
原创粉丝点击