首页 新闻 会员 周边 捐助

C#面试题 求大神解题 在线等....

0
悬赏园豆:200 [已解决问题] 解决于 2017-08-23 15:51

1.什么是纯虚类?什么是纯虚函数?什么是复制构造函数?

 

2.1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水。问:你有20元钱,最多可以喝到几瓶汽水?(需写计算过程)

 

3写一个函数,该函数实现如下功能,将指定数字列表中的偶函数去除,将剩余的数字由小到大排序,将排序完的数字列表返回(用C#语言计算)

例:指定数列:2,3,6,3,8,1,5,4,6,8,9,7

函数返回结果:1,3,3,5,7,9

 

4.写一个getLastNum(string str)函数,传入一个字符串参数,返回字符串中从右边起的第一组数字(编写语言C#)

例:getlastNum("aaa123bbb345cc")返回结果345,  getLastNum("aaa")返回结果0,getLastNum("a1aa")返回结果1,getLastNum("aaa123")返回结果123,getLastNum("123")返回结果123

程序员的故事的主页 程序员的故事 | 初学一级 | 园豆:2
提问于:2017-08-22 20:12
< >
分享
最佳答案
1

1.百度吧;

2.

20/2 = 10;10/2 = 5;5/2 = 2...1;2/2 = 1;1/2=0...1。20+10+5+2+1+(1+1)/2 = 39...1(如果编程实现的话,要用两个变量分别记录商和叠加余数,走完一次循环后,再对叠加的余数走循环)

static int Total(int money)
        {
            int bottles = money, totalBottles = money;
            int extraBlank = 0;
            while((bottles-(bottles%2))/2 != 0){
                totalBottles += (bottles - (bottles % 2)) / 2;
                extraBlank += bottles % 2;
                bottles=(bottles - (bottles % 2)) / 2;
            }
            extraBlank++;//上一轮最后总会多出一个空瓶
            while (extraBlank > 1)
            {
                totalBottles+= (extraBlank - (extraBlank % 2)) / 2;
                extraBlank += extraBlank % 2;
                extraBlank = (extraBlank - (extraBlank % 2)) / 2;
            }
            return totalBottles;
        }
View Code

其实有规律:20*2-1 = 39;8*2-1 = 15....

3.

int[] arr = { 2, 3, 6, 3, 8, 1, 5, 4, 6, 8, 9, 7 };
List<int> list = new List<int>(arr);
list = list.FindAll((a) => a % 2 != 0);
list.Sort((a,b)=> { if (a < b) return -1; return 1; })

 

4.

复制代码
static int getLastNum(string str){
            int result = 0;
            List<int> pos = new List<int>();
            for (int i = 0; i < str.Length; i++)
            {
                if (Int32.TryParse(str[i].ToString(),out result)) {
                    pos.Add(i);
                    while (++i<str.Length)
                    {
                        if (Int32.TryParse(str[i].ToString(), out result))
                        {
                            pos.Add(i);
                        }
                        else
                        {
                            break;
                        }
                    }
                    break;
                }
            }
            if (pos.Count == 0) return -1;
            return Int32.Parse(str.Substring(pos[0],pos.Count));
        }
复制代码
View Code
收获园豆:200
codingHeart | 小虾三级 |园豆:1511 | 2017-08-23 10:46
其他回答(8)
0

我选择死亡

猝不及防 | 园豆:2878 (老鸟四级) | 2017-08-23 09:12
1

第一个问题,我得去先去百度一波

虚函数:纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。

纯虚类:含有纯虚函数的类是纯虚类,更多的是叫抽象类。纯虚类可以有成员变量。纯虚类不能实例化。

原来其实就是虚方法,抽象类,差不多的东西,吓死宝宝了

大兄弟竹子 | 园豆:55 (初学一级) | 2017-08-23 09:23
0

问题3的参考:https://zhidao.baidu.com/question/136195660070488205.html

http://blog.csdn.net/zhangyusi36/article/details/5879853

金琥 | 园豆:2605 (老鸟四级) | 2017-08-23 09:42
1

这题目也太多了吧,

男人要爽 | 园豆:6 (初学一级) | 2017-08-23 09:52
0

2.

int a = 20;//20块钱;
int b = 0;//喝了多少瓶
int c = 0;//空瓶
for (int i = 0; i < a; i++)
{
a--;
b++;
c++;
if(c==2){
a++;
c = 0;
}

}

姚刘乐 | 园豆:70 (初学一级) | 2017-08-23 10:50
0
 1         static string getLastNum(string str) {
 2             StringBuilder sb = new StringBuilder(str.Length);
 3             for (int i = 0; i < str.Length; i++) {
 4                 char x = str[i];
 5                 sb.Append(char.IsNumber(x) ? x : ' ');
 6             }
 7             string[] split = sb.ToString().Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);
 8             if (split.Length == 0) return "0";
 9             return split[split.Length - 1];
10         }

呵呵

charset | 园豆:206 (菜鸟二级) | 2017-08-23 11:49

题四,受到启发,感谢!

支持(1) 反对(0) 森林长 | 园豆:204 (菜鸟二级) | 2017-08-23 14:21
1

题一: 百度

森林长 | 园豆:204 (菜鸟二级) | 2017-08-23 14:15

题二:算法2N-1 (20*2-1)=39

题三:

        private static List<int> GetResult(int[] numbers)
        {
            List<int> list = new List<int>();

            for (int i = 0; i < numbers.Length; i++)
            {
                if (numbers[i] % 2 != 0)
                {
                    list.Add(numbers[i]);
                }
            }

            list.Sort();
            return list;
        }

题四:

 private static string getLastNum(string strs)
        {         

            StringBuilder sb = new StringBuilder();

            Regex rg = new Regex("^[0-9]");

            for (int i = 0; i < strs.Length; i++)
            {
                if (rg.IsMatch(strs[i].ToString()))
                {
                   
                    sb.Append(strs[i].ToString());
                }
                else
                {
                
                    sb.Append(" ");
                }
            }
           

            string[] lists = sb.ToString().Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
            if (lists.Length == 0)
            {
                return "0";
            }
            else
            {
                return lists[lists.Length - 1];
            }
        }

支持(1) 反对(0) 森林长 | 园豆:204 (菜鸟二级) | 2017-08-23 14:20
0

题 2 解法  汽水 = 1空瓶 + 水

 推出

    1 元 = 1 空瓶 + 水

     2 空瓶 =  1空瓶 + 水   

所以水值 0.5 元   20 / 0.5 = 40

所以最大解可以为40   (只剩一个空瓶  可以 借一个空瓶  喝完在  还回去)

灵行寻燕 | 园豆:226 (菜鸟二级) | 2017-08-23 14:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册