Chinaunix首页 | 论坛 | 博客
  • 博客访问: 149090
  • 博文数量: 108
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 940
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-15 20:24
个人简介

反反复复

文章分类

全部博文(108)

文章存档

2014年(72)

2013年(36)

我的朋友

分类: C/C++

2013-03-13 17:05:29

1、A是一个用户自定义类。
int a = 100;
A *ptr = new A [a];
delete ptr;
这段代码是干什么的,有个错误请指出来,如何提高效率?
老师分析:
这段代码创建了一个包含100个类A的实例的数组。这个代码中删除对象数组占据内存空间的方式是“delete[]”而不是“delete”,因此应该改成:delete[] ptr。因为创建的是100个元素的数组,因此不需要一个单独的变量a,直接如下修改:
A *ptr = new A [100];
delete[] ptr;
2、How to calculate (1 + 2 + 3 + … + n)?
JSJ321.com老师分析:不要用老师讲的for循环来计算累计值,而是使用等差数列计算公式,这样效率会高很多
int F(int n)
{
return n*(n+1)/2;
}
3、 在一个火车站:每10分钟就有一火车离站向南开去;每10分钟,也有另外一辆火车离站向北开去。每天,你到达这个火车站的时间并不是固定的(换言之,在时 间上你是随机到达火车站的)。但是在你每次到达以后,你就会乘坐最先到站的火车离开,而不管它是往北或者是往南开。 这样在乘坐了一年以后,你发现在90%的天数里,你所乘坐的是南行的火车。请问这是为什么?
JSJ321.com老师分析:答案是“南行的火车时间比北行的时间早1分钟”。
比如:南行的时刻表为:12:00,12:10,12:20,12:30,、、、
北行的火车时间表为:12:01,12:11,12:21,12:31,、、、
这样的话,除非是你在到达的时候为12:00以后而在12:01之前,那么,从12:02到12:10之间,你都会乘坐南行火车。依此类推、、、这样的话,你在每10分钟里,乘坐南行火车的几率为90%。
4、 你独自一人在一孤岛上等待着救护人员的到来,但他们只会在第10天到达(今天是第零天)。你手头上有两种药品:“甲”和“乙”各10粒。想要活到第二天的 话,你必须吃一粒“甲”和一粒“乙”。可是,今天由于不小心你把“甲”和“乙”的颗粒混在了一块,而你又无法辨认出哪粒是“甲”、哪粒是 “乙”来。想要活到第十天的话,你需要怎么去做?
JSJ321.com老师分析:把20颗粒药碾碎,并混合均匀,然后平均分出10份,每次食用一份。 此题目的启示为:做事不要拘泥于条条框框。
阅读(629) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~