.Net Core 笔试1

1、用两个线程一个输出字母一个输出数字,交替输出Chat数组

cs 复制代码
            char[] aI = "1234567".ToCharArray();
            char[] aC = "ABCDEFG".ToCharArray();
            Task task1 = null;
            Task task2 = null;

            task1 = Task.Run(() =>
            {
                foreach (var item in aI)
                {
                    Console.WriteLine(item);
                    task1.Wait(100);
                }
            });
            task2 = Task.Run(() =>
            {
                foreach (var item in aC)
                {
                    Console.WriteLine(item);
                    task2.Wait(100);
                }
            });
            Task.WaitAll(task1, task2);
            Console.ReadLine();

2、用C#代码获取文件夹里及子文件夹所有文件名

cs 复制代码
        static void Main(string[] args)
        {
            string filePath = @"E:\笔记";
            string[] strs = Directory.GetFiles(filePath, "*", SearchOption.AllDirectories);
            foreach (var item in strs)
            {
                Console.WriteLine(item);
            }
        }

3、二分查找

cs 复制代码
        //二分查找
        public static int Erfen(int[] ints, int target)
        {
            int left = 0, right = ints.Length - 1;
            
            while(left < right)
            {
                int mid = left + (right - left) / 2;
                if (ints[mid] == target)
                {
                    return mid;
                }else if (ints[mid] < target)
                {
                    left = mid + 1;
                }
                else
                {
                    right = mid - 1;
                }
            }
            return -1;
        }

4、斐波那契数列

cs 复制代码
using System.Collections;
using System.Text.Json;
namespace Test1
{
    internal class Program
    {
       
        static void Main(string[] args)
        {
            Console.WriteLine("Feibo1");
            Console.WriteLine(Feibo1(1));
            Console.WriteLine(Feibo1(2));
            Console.WriteLine(Feibo1(3));
            Console.WriteLine(Feibo1(4));
            Console.WriteLine(Feibo1(5));
            Console.WriteLine("Feibo2");
            Console.WriteLine(Feibo2(1));
            Console.WriteLine(Feibo2(2));
            Console.WriteLine(Feibo2(3));
            Console.WriteLine(Feibo2(4));
            Console.WriteLine(Feibo2(5));
            Console.WriteLine("Feibo3");
            foreach (var item in Feibo3().Take(10))
            {
                Console.WriteLine(item);//斐波那契数列
            }
        }


        //递归
        public static int Feibo1(int n)
        {
            if (n == 1)
            {
                return 0;
            }
            if (n == 2 || n == 3) { return 1; }
            if (n > 3)
            {
                return Feibo1(n-2)+Feibo1(n-1);
            }
            return 0;
        }

        //迭代循环
        public static int Feibo2(int n)
        {
            if (n == 1)
            {
                return 0;
            }
            if (n == 2) { return 1; }

            int first = 0, second = 1, next = 0;
            for (int i = 3; i <= n; i++)
            {
                next = first + second;
                first = second;
                second = next;
            }
            return next;
        }
        
        //
        public static IEnumerable<int> Feibo3()
        {
            var (x, y) = (0, 1);
            yield return x;
            yield return y;

            while (true)
            {
                (x, y) = (y, x + y);
                yield return y;
            }
        }
    }
}
相关推荐
Penk是个码农4 分钟前
web前端面试-- MVC、MVP、MVVM 架构模式对比
前端·面试·mvc
MrSkye7 分钟前
🔥JavaScript 入门必知:代码如何运行、变量提升与 let/const🔥
前端·javascript·面试
白瓷梅子汤11 分钟前
跟着官方示例学习 @tanStack-form --- Linked Fields
前端·react.js
爱学习的茄子15 分钟前
深入理解JavaScript闭包:从入门到精通的实战指南
前端·javascript·面试
码农101号17 分钟前
Linux中容器文件操作和数据卷使用以及目录挂载
linux·运维·服务器
zhanshuo1 小时前
不依赖框架,如何用 JS 实现一个完整的前端路由系统
前端·javascript·html
火柴盒zhang1 小时前
websheet在线电子表格(spreadsheet)在集团型企业财务报表中的应用
前端·html·报表·合并·spreadsheet·websheet·集团财务
khalil1 小时前
基于 Vue3实现一款简历生成工具
前端·vue.js
程序员弘羽1 小时前
Linux进程管理:从基础到实战
linux·运维·服务器
拾光拾趣录1 小时前
浏览器对队头阻塞问题的深度优化策略
前端·浏览器