java 实现(代码) -- 水仙花数 + 杨辉三角形
博客专区 > Jusenr 的博客 > 博客详情
java 实现(代码) -- 水仙花数 + 杨辉三角形
Jusenr 发表于2年前
java 实现(代码) -- 水仙花数 + 杨辉三角形
  • 发表于 2年前
  • 阅读 6
  • 收藏 1
  • 点赞 2
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

 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 % 10 13  个位: 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,407 27 
28                 //153=1^3+ 5^3 +3^3=1 + 125+ 27
29  } 30  } 31  } 32 }

 

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

 

 1 import java.util.Scanner;  2 
 3 /*
 4  杨辉三角形:当前行的每个元素是当前行这个元素的上一行和上一行左侧元素的和  5     
 6  分析:  7             
 8  这个题目,使用了如下的技能点:  9                     
10  for循环:两个for循环的嵌套 11  动态数据:这个元素的上一行和上一行左侧元素的和 12  静态数据:每一行的第一列和最后一列都是:1 13                     
14  数组的元素可以通过下标索引快速定位,赋值 15                     
16  用两个for 循环控制一个二维数组得到最终的结果 17                     
18  目的: 19         
20  拓展传智学生的视野面,不要求掌握,需要理解。能够听懂,后期完成掌握。 21             
22             
23  1 1 24  1 2 1 25  1 3 3 1 26  1 4 6 4 1 27  1 5 10 10 5 1 28     
29 */
30 class YangHui { 31     public static void main(String[] args) { 32         int [ ][ ] san = new int [6][6]; 33         
34         //我比会做三角形,我会做矩形,赋值给三角形静态数据1
35         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
博文 20
码字总数 10876
×
Jusenr
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: