~交換兩個變量的方法
使用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();
}