酷酷的枪手 发表于 2023-2-19 15:41:16

大佬帮我看看

为啥我写的不行呀?

wuliangtdi 发表于 2023-2-19 16:06:33

https://s2.xptou.com/2023/02/19/63f1d7fbbb10e.png
namespace ConsoleApp1
{
    internal class Program
    {
      static void Main(string[] args)
      {
            const intn = 10;
            int[,] arr = new int;
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                  if (j==0)
                  {
                        arr = 1;
                        Console.Write(arr + "");
                  }
                  else if (i > j)
                  {
                        if (i==0 || j==0)
                        {
                            continue;
                        }
                        else
                        {
                            arr = arr[(i - 1), (j - 1)] + arr[(i - 1), (j)];
                            Console.Write(arr + "");
                        }
                  }
                  else if (i == j)
                  {
                        arr = 1;
                        Console.Write(arr + "");
                  }
                  else if(i < j)
                  {
                        Console.Write("");
                  }
                }
                Console.Write("\n");
            }

            Console.ReadKey();
      }
    }
}
用的是C#写的,大概思路是这样子的,可以参考一下

陈尚涵 发表于 2023-2-19 16:30:04

wuliangtdi 发表于 2023-2-19 16:06
用的是C#写的,大概思路是这样子的,可以参考一下

大哥,人家是py,而且学C#的很少吧,效率太低了

酷酷的枪手 发表于 2023-2-19 16:35:54

wuliangtdi 发表于 2023-2-19 16:06
用的是C#写的,大概思路是这样子的,可以参考一下

谢谢你,但是看不懂

wuliangtdi 发表于 2023-2-19 16:52:04

陈尚涵 发表于 2023-2-19 16:30
大哥,人家是py,而且学C#的很少吧,效率太低了

思路都差不多,而且我这个压根没用啥C#里的集合啥的。效率再低也不比Py差,毕竟Ryujinx使用C#写的,性能不差的

wuliangtdi 发表于 2023-2-19 17:07:54

陈尚涵 发表于 2023-2-19 16:30
大哥,人家是py,而且学C#的很少吧,效率太低了

https://i.328888.xyz/2023/02/19/XRdlC.png
package com.ct.Main;

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
      intn = 10;
      int[][] arr = new int;
      for (int i = 0; i < n; i++)
      {
            for (int j = 0; j < n; j++)
            {
                if (j==0)
                {
                  arr = 1;
//                  Console.Write(arr + "");
                  System.out.print(arr + "");
                }
                else if (i > j)
                {
                  if (i==0 || j==0)
                  {
                        continue;
                  }
                  else
                  {
                        arr = arr[(i - 1)][(j - 1)] + arr[(i - 1)][(j)];
                        System.out.print(arr + "");
                  }
                }
                else if (i == j)
                {
                  arr = 1;
                  System.out.print(arr + "");
                }
                else if(i < j)
                {
                  // arr = ;
                  System.out.print("");
                }
            }
            System.out.print("\n");
      }

      Scanner input = new Scanner(System.in);
      input.nextInt();
    }
}

用java也基本没怎么动,稍微改改就好了

一点沙 发表于 2023-2-19 20:40:13

def c(x, y):# 杨辉三角形递归函数

    if y == 1 or y == x: # y=1或y=x时,函数返回值为1

      return 1

    else:

      z = c(x-1, y-1) + c(x-1, y) # y为其他值时的递推公式

      return z

if __name__ == "__main__":

    n = int(input("请输入杨辉三角的行数:"))

    for i in range(1, n+1): # 输出n行

      for j in range(0, n-i+1):

            print("", end=" ")

      for j in range(1, i+1):

            # 调用递归函数,输出第i行的第j个值

            print("%6d" %(c(i, j)), end=" ")

      print()

在网上找到的,因为作者说明要注明出处,所以这里发下网址https://www.jianshu.com/p/c086b891179a

酷酷的枪手 发表于 2023-2-20 08:28:57

@isdkz 大佬帮帮我

一点沙 发表于 2023-2-20 08:42:13

酷酷的枪手 发表于 2023-2-20 08:28
@isdkz 大佬帮帮我

我这个不行吗

酷酷的枪手 发表于 2023-2-20 08:51:11

一点沙 发表于 2023-2-20 08:42
我这个不行吗

没仔细看,定义函数还不怎么熟,我想知道上面我写的有什么错误

一点沙 发表于 2023-2-20 08:55:30

酷酷的枪手 发表于 2023-2-20 08:51
没仔细看,定义函数还不怎么熟,我想知道上面我写的有什么错误

啊这。。。我也不知道{:10_266:}

dolly_yos2 发表于 2023-2-20 09:14:54

>>> a = [[]] * 10
>>> id(a)
139784198380928
>>> id(a)
139784198380928
>>> a
[[], [], [], [], [], [], [], [], [], []]
>>> a.append(42)
>>> a
[, , , , , , , , , ]

Syyyyyy.06 发表于 2023-2-20 09:29:36

tsElim 发表于 2023-2-20 11:29:21

for j in range(i),这里j的取值有问题,i是从0开始的,j也是从0开始,当i=0时,j没有取值范围,另外range(i)也不会出现i==j的情况,改为for j in range(i+1)

酷酷的枪手 发表于 2023-2-20 13:59:15

dolly_yos2 发表于 2023-2-20 09:14


好的谢谢你,我懂我错哪里了
页: [1]
查看完整版本: 大佬帮我看看