亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將此 Python 腳本翻譯成 C#?

如何將此 Python 腳本翻譯成 C#?

慕少森 2022-11-09 14:51:28
我有一個用 Python 語言編寫的腳本,我想看看它在 C# 中的樣子。def combis(n):    if n < 0:        return    if n == 0:        yield []    for x in (1, 3, 4):        for combi in combis(n-x):            yield [x] + combi>>> list(combis(5))目前我不明白如何在 C# 中實現這段代碼,讓我分心的是那些產量以及我的方法應該以哪種類型編寫。我目前擁有的東西不起作用且無法理解static int[]  Combs(int n)        {            int[] tusc = { };            if (n < 0)                yield break;            if (n == 0)                yield return tusc;            int[] X = { 1, 3, 4 };            for(int i = 0; i < X.Length; i++)            {                for(j = 0; j <= Combs(n-X[i]).Length; j++)                {                    yield return X + j;                }            }        }當 n 等于 5 時,python 腳本的輸出為:>>> list(combis(5))[[1, 1, 1, 1, 1], [1, 1, 3], [1, 3, 1], [1, 4], [3, 1, 1], [4, 1]]當 n 等于 4 時:[[1, 1, 1, 1], [1, 3], [3, 1], [4]]          
查看完整描述

1 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

using System;

using System.Collections.Generic;


namespace HowToTranslateInCSharp

{

    class Program

    {

        static IEnumerable<List<int>> Combis(int n)

        {

            if (n >= 0)

            {

                if (n == 0)

                    yield return new List<int>();

                else

                {

                    foreach (var x in new[] {1, 3, 4})

                    {

                        foreach (var combi in Combis(n - x))

                        {

                            var list = new List<int>() {x};

                            list.AddRange(combi);

                            yield return list;

                        }

                    }        

                }

            }

        }


        static void Main(string[] args)

        {

            var result = Combis(5);


            foreach (var list in result)

            {

                Console.WriteLine($"[{string.Join(" ", list)}]");

            }

        }

    }

}

輸出是


[1 1 1 1 1]

[1 1 3]

[1 3 1]

[1 4]

[3 1 1]

[4 1]


查看完整回答
反對 回復 2022-11-09
  • 1 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號