河岸柳 发表于 2021-10-2 16:08:49

新手求助

为什么就是算不出正确数值??

问题
从起点(0,0)走到终点(n,n)的最短路径数是C(2n,n),现在小兔又想如果不穿越对角线(但可接触对角线上的格点),这样的路径数有多少?

Input
每次输入一个数n(1<=n<=35),当n等于-1时结束输入。

Output
对于每个输入数据输出路径数,具体格式看Sample。

Sample Input
1
3
12
-1

Sample Output
1 1 2
2 3 10
3 12 416024
我的代码如下
#include<stdio.h>

int main()
{
        int count=1,i,j,num,sum,sum1,sum2,t;
        while(scanf("%d",&num)!=EOF)
        {
                count++;
                int sum1=1,sum2=1;
                for(i=num*2;i>num;i--)
                {
                        sum1*=i;
                }
                for(j=num;j>0;j--)
                {
                        sum2*=j;
                }
               
                sum=sum1/sum2;
                printf("%d %d %d\n",count-1,num,sum);
        }
       
        return 0;
}

傻眼貓咪 发表于 2021-10-2 16:08:50

C++代码:#include <iostream>
using namespace std;

int func(int n){
    if (n <= 1){return 1;}
    int res = 0;
    for (int i = 0; i < n; i++){
      res += func(i) * func(n - 1 - i);
    }
    return res;
}

int f(int x){
    return func(x) << 1;
}

int main (){
    int i = 0;
    while(true){
      i++;
      int n;
      cin >> n;
      if(n == -1){
            break;
      }
      cout << i << ' ' << n << ' ' << f (n) << endl;
    }
    return 0;
}C代码:#include <stdio.h>

int func(int n){
    if (n <= 1){return 1;}
    int res = 0;
    for (int i = 0; i < n; i++){
      res += func(i) * func(n - 1 - i);
    }
    return res;
}

int f(int x){
    return func(x) << 1;
}

int main(){
    int i = 0;
    while(1){
      i++;
      int n;
      scanf("%d", &n);
      if(n == -1){
            break;
      }
      printf("%d %d %d\n", i, n, f(n));
    }
    return 0;
}Python3代码:def func(n: int) -> int:
    if n <= 1: return 1
    res = 0
    for i in range(n):
      res += func(i)*func(n-1-i)
    return res

f = lambda x: func(x)<<1

i = 0
while True:
    i += 1
    n = int(input())
    if n == -1:
      break
    print(f"{i} {n} {f(n)}")输出结果:1
1 1 2
3
2 3 10
12
3 12 416024
-1

傻眼貓咪 发表于 2021-10-3 11:33:30

朋友,如果我的解答是你想要的请给最佳解答,谢谢
页: [1]
查看完整版本: 新手求助