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
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; }
其实有规律: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)); }
我选择死亡
问题3的参考:https://zhidao.baidu.com/question/136195660070488205.html
http://blog.csdn.net/zhangyusi36/article/details/5879853
这题目也太多了吧,
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;
}
}
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 }
呵呵
题四,受到启发,感谢!
题一: 百度
题二:算法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];
}
}
题 2 解法 汽水 = 1空瓶 + 水
推出
1 元 = 1 空瓶 + 水
2 空瓶 = 1空瓶 + 水
所以水值 0.5 元 20 / 0.5 = 40
所以最大解可以为40 (只剩一个空瓶 可以 借一个空瓶 喝完在 还回去)