逐至 2021-04-12 11:58 采纳率: 100%
浏览 69
已结题

另一个c#编程题,请进链接查看文本,会的兄弟留下代码,输入输出得一致,感谢

链接: https://pan.baidu.com/s/14y0xTlugL3R9ubj-h7zMvg

提取码: qjvg 

  • 写回答

3条回答 默认 最新

  • soar3033 2021-04-12 14:16
    关注
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApp4
    {
        class Program
        {
            static void Main(string[] args)
            {
                auto.start();
                Console.ReadKey();
            }
        }
    
        class auto
        {
            public static void start()
            {
                char i1;
                int gens,count;
                count = 0;
                int[] start;
                int[] rules = new int[8];
                i1=(char)int.Parse(Console.ReadLine());
                gens = int.Parse(Console.ReadLine());
                string str = Console.ReadLine();
                start = new int[str.Length];
                for (int i = 0; i < str.Length; i++)
                {
                    if (str[i]=='-')
                    {
                        start[i]=0;
                    }
                    else
                    {
                        start[i]=1;
                    }
                }
                for (int i = 0; i < 8; i++)
                {
                    if ((i1&0x80)==0x80)
                    {
                        rules[i] = 1;
                    }
                    else
                    {
                        rules[i] = 0;
                    }
                    i1 <<= 1;
                }
                int[] gen = new int[start.Length];
                for (int i = 0; i < gens; i++)
                {
                    count++;
                    for (int j = 0; j < start.Length; j++)
                    {
                        int tmp = 0;
                        if (j==0)
                        {
                            tmp = start[start.Length - 1];
                        }
                        else
                        {
                            tmp = start[j - 1];
                        }
                        tmp <<= 1;
                        tmp |= start[j];
                        tmp <<= 1;
                        if (j==(start.Length-1))
                        {
                            tmp |= start[0];
                        }
                        else
                        {
                            tmp |= start[j + 1];
                        }
    
                        switch (tmp)
                        {
                            case 7:
                                gen[j] = rules[0];
                                break;
                            case 6:
                                gen[j] = rules[1];
                                break;
                            case 5:
                                gen[j] = rules[2];
                                break;
                            case 4:
                                gen[j] = rules[3];
                                break;
                            case 3:
                                gen[j] = rules[4];
                                break;
                            case 2:
                                gen[j] = rules[5];
                                break;
                            case 1:
                                gen[j] = rules[6];
                                break;
                            case 0:
                                gen[j] = rules[7];
                                break;
                        }
                    }
    
                    for (int k = 0; k < start.Length; k++)
                    {
                        start[k] = gen[k];
                    }
                    if ((count<=20)||(count>gens-20))
                    {
                        for (int k = 0; k < start.Length; k++)
                        {
                            if (start[k]==1)
                            {
                                Console.Write("x");
                            }
                            else
                            {
                                Console.Write("-");
                            }  
                        }
                        Console.Write('\n');
                    }
                    else if (gens>40 && count==21)
                    {
                        Console.WriteLine("...");
                    }
                }
            }
        }
    }
    

    如果不需要main函数,则复制下面的

    using System;
    class Program
    {
        public static void start()
        {
            char i1;
            int gens, count;
            count = 0;
            int[] start;
            int[] rules = new int[8];
            i1 = (char)int.Parse(Console.ReadLine());
            gens = int.Parse(Console.ReadLine());
            string str = Console.ReadLine();
            start = new int[str.Length];
            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] == '-')
                {
                    start[i] = 0;
                }
                else
                {
                    start[i] = 1;
                }
            }
            for (int i = 0; i < 8; i++)
            {
                if ((i1 & 0x80) == 0x80)
                {
                    rules[i] = 1;
                }
                else
                {
                    rules[i] = 0;
                }
                i1 <<= 1;
            }
            int[] gen = new int[start.Length];
            for (int i = 0; i < gens; i++)
            {
                count++;
                for (int j = 0; j < start.Length; j++)
                {
                    int tmp = 0;
                    if (j == 0)
                    {
                        tmp = start[start.Length - 1];
                    }
                    else
                    {
                        tmp = start[j - 1];
                    }
                    tmp <<= 1;
                    tmp |= start[j];
                    tmp <<= 1;
                    if (j == (start.Length - 1))
                    {
                        tmp |= start[0];
                    }
                    else
                    {
                        tmp |= start[j + 1];
                    }
    
                    switch (tmp)
                    {
                        case 7:
                            gen[j] = rules[0];
                            break;
                        case 6:
                            gen[j] = rules[1];
                            break;
                        case 5:
                            gen[j] = rules[2];
                            break;
                        case 4:
                            gen[j] = rules[3];
                            break;
                        case 3:
                            gen[j] = rules[4];
                            break;
                        case 2:
                            gen[j] = rules[5];
                            break;
                        case 1:
                            gen[j] = rules[6];
                            break;
                        case 0:
                            gen[j] = rules[7];
                            break;
                    }
                }
    
                for (int k = 0; k < start.Length; k++)
                {
                    start[k] = gen[k];
                }
                if ((count <= 20) || (count > gens - 20))
                {
                    for (int k = 0; k < start.Length; k++)
                    {
                        if (start[k] == 1)
                        {
                            Console.Write("x");
                        }
                        else
                        {
                            Console.Write("-");
                        }
                    }
                    Console.Write('\n');
                }
                else if (gens > 40 && count == 21)
                {
                    Console.WriteLine("...");
                }
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格