【百度】试题若干
来源:互联网 发布:用友网络未来价值2017 编辑:程序博客网 时间:2024/06/06 07:42
1【排序】
给定数列(541,132,984,746,518,181,946,314,205,827)按照从小到大的顺序排列,采用冒泡排序时,第一趟扫描 结果是();采用直接选择大值开始排序时,第一趟扫描结果是();采用快速排序(以中间元素518为基准)的第一趟扫描结果是()。
(541,132,827,746,518,181,946,314,205,984)
(205,132,314,181,518,746,946,984,541,827)
(132,541,746,984,181,518,314,946,205,827)
解答:
给定数列(541,132,984,746,518,181,946,314,205,827)
选择:C A B:
冒泡排序(从小到大):通过比较相邻的两个元素,将大的移动到最后面,所以完成一趟比较的结果就是将最大的放在最后面。
直接选择排序(采用选择大值):就是讲最大的一个元素取出来和最后面的一个元素交换,别的元素位置不变。
快速排序(以518为基准):数组左边防止比基准小的元素,数组右边放置比基准大的元素。
2【查找】
求符合指定规则的数。 给定函数 d(n) = n + n 的各位之和,n 为正整数,如 d(78) = 78+7+8=93。 这样这个函数可以看成一个生成器,如 93 可以看成由 78 生成。
定义数 A:数 A 找不到一个数 B 可以由 d(B)=A,即 A 不能由其他数生成。现在要写程序,找出 1 至 10000 里的所有符合数 A 定义的数。输出:
1
3
…
解答:
#include<iostream>
using namespace std;
int main()
{
int res[10036] = {0};//最大的加和为 9999+9+9+9+9 = 10035
int temp = 0,n = 0;
for (int i=1;i<10001;i++)
{
temp = i;
n = i;
while (n)
{
temp += n%10;
n /= 10;
}
res[temp] = 1;//标记可以产生的数
}
for (int i=1;i<10001;i++)
{
if (0 == res[i])
{
cout<<i<<endl;
}
}
return 0;
}
- 【百度】试题若干
- 若干经典面试题
- 【阿里巴巴】试题若干
- 【腾讯】试题若干
- 若干运维面试题
- 华为机试题目 若干
- 百度试题
- 百度试题
- 百度试题
- 百度试题
- 百度试题
- 若干道笔试试题,基础加经典
- 百度竞赛试题
- 百度面试题
- 百度面试题
- 百度面试题
- 百度面试题
- 百度面试题
- 黑马程序员——C语言运算符的概念及分类
- ubuntu14.04(32位)下编译android4.4时遇到的问题
- SpringMVC,Servlet,Struts1,Struts2单多例笔记
- Spring IOC-WebApplicationContext刷新(was.refresh())
- 手斧Linux – 从LFS到Funtoo (104)
- 【百度】试题若干
- 学嵌入式需要掌握哪些知识
- 手斧Linux – 从LFS到Funtoo (105)
- 自定义上拉加载下拉刷新 和 UIRefreshControl 刷新
- 手斧Linux – 从LFS到Funtoo (106)
- Android常用框架收集
- 次小生成树POJ 1679
- Java文件操作
- C语言结构体