C# 面试题二
2021-04-12 05:28
标签:递归 位置 mes pre rgs 数值 foreach reac 编程 1、 请编程实现一个冒泡排序算法? 2、选择排序算法 3、求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m 4、a=10,b=15,在不用第三方变量的前提下,把a,b的值互换 5、 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。 C# 面试题二 标签:递归 位置 mes pre rgs 数值 foreach reac 编程 原文地址:https://www.cnblogs.com/zhengwei-cq/p/9011523.htmlint [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i 1 ; i++)
{
for (int j = i + 1 ; j )
{
if (array[j] array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 选择排序
{
//选择排序与冒泡排序比较的次数是一样的
//选择排序的交换次数要比冒泡排序的交换次数少
class Program
{
static void Main(string[] args)
{
int[] arr = { 15, 0, 10, 50, 55, 35, 15, 20 }; //待排序数组
SelectSort(arr); //调用选择排序函数
}
private static void SelectSort(int[] arr)
{
int temp = 0;
for (int i = 0; i 1; i++)
{
int minVal = arr[i]; //假设 i 下标就是最小的数
int minIndex = i; //记录我认为最小的数的下标
for (int j = i + 1; j //这里只是找出这一趟最小的数值并记录下它的下标
{
//说明我们认为的最小值,不是最小
if (minVal > arr[j]) //这里大于号是升序(大于是找出最小值) 小于是降序(小于是找出最大值)
{
minVal = arr[j]; //更新这趟最小(或最大)的值 (上面要拿这个数来跟后面的数继续做比较)
minIndex = j; //记下它的下标
}
}
//最后把最小的数与第一的位置交换
temp = arr[i]; //把第一个原先认为是最小值的数,临时保存起来
arr[i] = arr[minIndex]; //把最终我们找到的最小值赋给这一趟的比较的第一个位置
arr[minIndex] = temp; //把原先保存好临时数值放回这个数组的空地方, 保证数组的完整性
}
//控制台输出
foreach (int item in arr)
{
Console.WriteLine("C#遍历:{0}", item);
}
}
}
}
法一:
int sum=0;
bool flag=true;
for(int i=1;i)
{
if(flag)
sum+=i;
else
sum-=i;
flag=!flag;
}
return sum;
法二:
if((m%2)>0)
return m/2;
else
return -m/2;
int a=10;int b=15;
a=a+b;
b=a-b;
a=a-b;
public class MainClass
{
public static void Main()
{
Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
if (i 0)
return 0;
else if(i > 0 && i 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
}