C#实现变量交换、斐波那契数列、质数、回文方法合集

 更新时间:2022年02月16日 08:31:41   作者:痕迹g  
这篇文章介绍了C#实现变量交换、斐波那契数列、质数、回文的方法合集,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

交换两个变量的方法

使用C#中的第三个变量交换两个数字

int number1=10,number2=20,temp=0;
temp=number1;
number1=number2;
number2=temp;

不使用第三个变量交换数字的方法

  • 通过 *和/

    int number1=10,number2=20;
    number1=number1*number2;  //200  
    number2=number1/number2;  //10
    number1= number1/number2; //20
  • 通过 +和-

    int number1=10,number=20;
    number1=number1+number2; //30
    number2=number1-number2; //10
    number1=number1-number2; //20

不使用第三个变量交换字符串的方法

string name1="Dotnet", name2="C#";
name1=name1+name2;  //DotnetC#
name2=name1.Substring(0,name1.Length-name2.Length); //Dotnet
name1=name1.Substring(name2.Length); //C# 

斐波纳奇数列

斐波那契数列是按以下顺序排列的数字序列:

在C#中实现斐波那契数列的方法

  • 迭代
  • 递归

迭代打印斐波那契数列的方法:

int firstNumber=0;SecondNumber=1;nextNumber;
Console.Write("输入打印的元素数量:");
int numberOfElement=int.Parse(Console.ReadLine());
if(numberOfElements>2)
{
    Console.Write($"{firstNumber} {SecondNumber}");
    
    for(int i=2;i<numberOfElements;i++)
    {
        nextNumber=firstNumber+SecondNumber;
        Console.Write($"{nextNumber} ");
        firstNumber=SecondNumber;
        SecondNumber=nextNumber;
    }
}

递归打印斐波那契数列的方法:

Console.Write("输入打印的元素数量:");
int numberOfElement=int.Parse(Console.ReadLine());
FibonacciSeries(0,1,1,numberOfElement);

//递归打印方法
FibonacciSeries(int firstNumber,int secondNumber,int Counter,int number)
{
    Console.Write($"{firstNumber} ");
    if(counter<number)
        FibonacciSeries(secondNumber,firstNumber+secondNumber,counter+1,number);
}

如何从斐波那契数列中找到第N个斐波那契数列编号?

static void Main(string[] args)
        {
            Console.Write("请输入需要获取的斐波那契数值的编号: ");
            int number = int.Parse(Console.ReadLine());

            //因为序列是从0开始, 所以我们计算某一位时,需要-1;
            number = number - 1;
            Console.Write(NthFibonacciNumber(number));
            Console.ReadKey();
        }

        private static int NthFibonacciNumber(int number)
        {
            int firstNumber = 0, secondNumber = 1, nextNumber = 0;

            //如果输入0,则返回0
            if (number == 0)
                return firstNumber;

            for (int i = 2; i <= number; i++)
            {
                nextNumber = firstNumber + secondNumber;
                firstNumber = secondNumber;
                secondNumber = nextNumber;
            }

            return secondNumber;
        }

质数

质数又称素数, 一个大于1的自然数, 除了1和它自身外, 不能被其他自然数整除的数叫做质数。,例如: 2,3,5,7,11,13,17,19,23... 是质数。

 			Console.Write("输入数字: ");
            int number = int.Parse(Console.ReadLine());
            bool IsPrime = true;
            for (int i = 2; i < number / 2; i++)
            {
                if (number % i == 0)
                {
                    IsPrime = false;
                    break;
                }
            }
            if (IsPrime)
                Console.Write($"{number}是质数");
            else
                Console.Write($"{number}不是质数");
            Console.ReadKey();

如何打印两个数字之间的所有质数?

 			Console.Write("输入起始数字: ");
            int startNumber = int.Parse(Console.ReadLine());
            Console.Write("输入结束数字: ");
            int endNumber = Convert.ToInt32(Console.ReadLine());

            for (int i = startNumber; i <= endNumber; i++)
            {
                int counter = 0;
                for (int j = 2; j <= i / 2; j++)
                {
                    if (i % j == 0)
                    {
                        counter++;
                        break;
                    }
                }
                
                if (counter == 0 && i != 1)
                {
                    Console.Write("{0} ", i);
                }    
            }
            Console.ReadKey();
        }

回文(数字与字符串)

  • 回文数

    是一组数字, 反转该数字之后与原来相同。例如: 121, 343, 7887 等。

  • 回文字符串

    一组文字, 返回该文字之后与原来相同。例如: ABA、我爱我等。

如何检查某数字是否属于回文数?

		static void Main(string[] args)
        {
            	Console.Write("请输入要检查的数字 : ");
                int number = int.Parse(Console.ReadLine());
                int remineder, sum = 0;
                int temp = number;
                while (number > 0)
                {
                    //得到余数
                    remineder = number % 10;
                    //总和*10, 然后与余数相加
                    sum = (sum * 10) + remineder;
                    //除以10,得到商
                    number = number / 10;
                }
                if (temp == sum)
                    Console.WriteLine($"{temp}是回文");
                else
                    Console.WriteLine($"{temp}不是回文");
            Console.ReadKey();
        }

如何检查某字符串是否属于回文?

  • 方法1
		static void Main(string[] args)
        {
            Console.Write("输入要检查的回文: ");
            string name = Console.ReadLine();
            string reverse = string.Empty;
            
            for (int i = name.Length - 1; i >= 0; i--)
                reverse += name[i];
            
            if (name == reverse)
                Console.WriteLine($"{name}是回文");
            else
                Console.WriteLine($"{name}不是回文");
            Console.ReadKey();
        }
  • 方法2
		static void Main()
        {
            Console.Write("输入要检查的回文: ");
            string name = Console.ReadLine();
            string reverse = string.Empty;
            foreach (char c in name)
                reverse = c + reverse;
            if (name.Equals(reverse, StringComparison.OrdinalIgnoreCase))
                Console.WriteLine($"{name}是回文");
            else
                Console.WriteLine($"{name}不是回文");
            Console.ReadKey();
        }
  • 方法3
		static void Main()
        {
            Console.Write("输入要检查的回文: ");
            string name = Console.ReadLine();

            char[] nameArray = name.ToCharArray();
            Array.Reverse(nameArray);
            string reverse = new string(nameArray);
            
            if (name.Equals(reverse, StringComparison.OrdinalIgnoreCase))
                Console.WriteLine($"{name}是回文");
            else
                Console.WriteLine($"{name}不是回文");
            Console.ReadKey();
        }

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 在C#中根据HardwareID获取驱动程序信息的实现代码

    在C#中根据HardwareID获取驱动程序信息的实现代码

    这篇文章主要介绍了C#中根据HardwareID获取驱动程序信息的实现代码,需要的朋友可以参考下
    2016-12-12
  • C#线程处理系列之线程池中的I/O线程

    C#线程处理系列之线程池中的I/O线程

    这篇文章主要介绍了C#线程处理系列之线程池中的I/O线程,在这篇文章中将介绍如何用线程池中的I/O线程来执行I/O操作,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • c#日志记录帮助类分享

    c#日志记录帮助类分享

    这篇文章主要介绍了c#日志记录帮助类,可以设置记录的日志类型,需要的朋友可以参考下
    2014-03-03
  • 5分钟用C#实现串口助手

    5分钟用C#实现串口助手

    本文主要介绍了C#实现串口助手,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • C#实现奇偶排序的示例代码

    C#实现奇偶排序的示例代码

    奇偶排序是一种简单的排序算法,该算法通过比较并交换相邻的元素来完成排序,本文主要介绍了C#实现奇偶排序的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • .net从服务器下载文件中文名乱码解决方案

    .net从服务器下载文件中文名乱码解决方案

    这篇文章主要给大家介绍.net中从服务器下载文件中文名乱码的解决方案,有需要的朋友可以参考下
    2015-08-08
  • C#实现判断文件夹存在与否并创建文件夹的方法

    C#实现判断文件夹存在与否并创建文件夹的方法

    这篇文章主要介绍了C#实现判断文件夹存在与否并创建文件夹的方法,涉及C#针对文件及目录的判断与创建操作相关技巧,需要的朋友可以参考下
    2017-02-02
  • C#实现Winform鼠标拖动窗口大小时设定窗口最小尺寸的方法

    C#实现Winform鼠标拖动窗口大小时设定窗口最小尺寸的方法

    这篇文章主要介绍了C#实现Winform鼠标拖动窗口大小时设定窗口最小尺寸的方法,涉及WinForm改变窗口大小时动态判断当前窗口尺寸的相关技巧,非常简单实用,需要的朋友可以参考下
    2015-11-11
  • 浅谈C#中ListView类的用法

    浅谈C#中ListView类的用法

    这篇文章主要介绍了浅谈C#中ListView的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • C#笔试题之同线程Lock语句递归不会死锁

    C#笔试题之同线程Lock语句递归不会死锁

    这篇文章主要介绍了C$ 笔试题之同线程Lock语句递归不会死锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论