A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张明 于 2012-8-18 00:00 编辑
  1. /*
  2. 要求输出结果:
  3.          1
  4.        1  1
  5.      1  2  1
  6.     1 3  3  1
  7.   1 4   6  4   1
  8. 每下一行的数字等于其肩上的两个数字之和
  9. */
  10. class Shuzu
  11. {
  12. public static void main(String[] args)
  13. {
  14. int[] x=new int[15];
  15. int[] y=new int[15];
  16. x[6]=1;
  17. for(int i=0;i<5;i++)
  18. {
  19. if(i%2==0)//x与y交替输出
  20. {
  21. for(int j=0;j<15;j++)
  22. {
  23. if(x[j]!=0)//若为0输出/t
  24. {
  25. System.out.print(x[j]);
  26. if(j>=1)
  27. {
  28. y[j]=x[j]+x[j-1];//下面的数组的值等于上面相邻两个的和
  29. y[j]=x[j]+x[j+1];
  30. }
  31. }
  32. else
  33. {
  34. System.out.print("\t");
  35. }
  36. }
  37. System.out.println();
  38. }
  39. else
  40. {
  41. for(int j=0;j<15;j++)
  42. {
  43. if(y[j]!=0)
  44. {
  45. System.out.print(y[j]);
  46. if(j>=1)
  47. {
  48. x[j]=y[j]+y[j-1];//下面的数组的值等于上面相邻两个的和
  49. x[j]=y[j]+y[j+1];
  50. }
  51. }
  52. else
  53. {
  54. System.out.print("\t");
  55. }
  56. }
  57. System.out.println();
  58. }
  59. }
  60. }
  61. }
复制代码
此代码的运行结果与我相像的相去甚远啊,谁能帮我改改?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

4 个回复

倒序浏览
class Shuzu
{
       public static void Main(String[] args)

      {
           int n =Convert.ToInt32(Console.ReadLine());//从键盘输入杨辉三角的行数
           int[] inlistold = new int[15];
           int[] inlistnew = new int[15];
           for (int i = 1; i <= n; i++)//遍历每行并计算后输出
          {
                inlistnew.CopyTo(inlistold, 0);
                Console.Write("     ");
                for (int x = 1; x <= (n - i); x++)
                {
                     Console.Write("  ");
                }
                for (int j = 1; j <= i; j++)
                {
                     if (j == 1 || j == i)
                    {
                          inlistnew[j] = 1;
                          Console.Write(" 1 ");
                    }
                    else
                    {
                          int jisuan = inlistold[j] + inlistold[j - 1];
                          inlistnew[j] = jisuan;
                          if (jisuan < 10)
                         {
                                Console.Write(" " + jisuan + " ");
                         }
                         else
                         {
                                Console.Write(" " + jisuan);
                         }
                     }
                    Console.Write(" ");
               }
            Console.WriteLine("");
        }
     }
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
许庭洲 发表于 2012-8-17 08:52
class Shuzu
{
       public static void Main(String[] args)

谢谢您的回复,现在我自己也修改了一下代码,成功了
回复 使用道具 举报
这个就是大名鼎鼎的“杨辉三角”,里面富含有很多的数学知识,有空了可以学学它的基础知识,对于了解算法的核心肯定有帮助的。而且个人觉得数学知识的扩充是程序员的必修课之一。
回复 使用道具 举报
化宝峰 发表于 2012-8-17 10:30
这个就是大名鼎鼎的“杨辉三角”,里面富含有很多的数学知识,有空了可以学学它的基础知识,对于了解算法的 ...

嗯嗯,是啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马