有n个整数,使前面各数后移m个位置,最后m个数变成最前面m个数,在主函数输入n个整数和输出调整后n个整数.
来源:互联网 发布:维普数据库电话 编辑:程序博客网 时间:2024/05/16 09:56
- 这个问题有个经典的解法。
- 假设有n个元素,需要将前m(m<n)个元素移动到后面去,则只需要下面三个步骤:
- 1、将前m个元素的顺序颠倒
- 2、将后面n-m个元素的顺序颠倒
- 3、将n个元素的顺序全部颠倒
- 这样就可以了!把数组的元素颠倒,这个函数你会写吧?然后只要调用三次即可。
- 不是证明的证明:
- 伸出你的两只手,手心向上。如果没有意外的话一共10个指头(废话),将所有的指头从左到右编号0, 1, 2, ..., 9。这时候n=10,如果取m=5的话,上述步骤可以转变为下面的步骤:
- 1、将左手翻过来,指头的顺序:4, 3, 2, 1, 0, 5, 6, 7, 8, 9
- 2、将右手翻过来,指头的顺序:4, 3, 2, 1, 0, 9, 8, 7, 6, 5
- 3、将两只手连在一起翻过来,指头的顺序:5, 6, 7, 8, 9, 0, 1, 2, 3, 4
- 完成。
- -----------------------------------------------
- 这个函数实现了指针start到指针end之间的数据的顺序颠倒。
- void fun(int* start, int* end)
- {
- while( start < end )
- {
- int temp = *start;
- *start = *end;
- *end = temp;
- ++start;
- --end;
- }
- }
- 这个函数调用三次实现:
- void f(int n, int m, int* numbers)
- {
- // 前m个数顺序颠倒
- func(numbers, numbers+m-1);
- // 后n-m个数顺序颠倒
- func(numbers+m, numbers+n-1);
- // 所有数顺序颠倒
- func(numbers, numbers+n-1);
- }
- 有n个整数,使前面各数后移m个位置,最后m个数变成最前面m个数,在主函数输入n个整数和输出调整后n个整数.
- 有n个整数,使前面各数后移m个位置,最后m个数变成最前面m个数,在主函数输入n个整数和输出调整后n个整数.
- (用指针方法处理)有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。编写一个函数实现上述功能,在主函数中输入n个整数,并输出调整后的n个数
- 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。
- C++入门:有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数
- (c++)有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。
- 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。(指针)
- 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
- 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数
- 有n个整数,使前面各数顺序向后移动m个位置最后m个数变成最前面的m个数
- 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数
- 有n个整数,使前面各数向后移m个位置,最后m个数变成最前面m个数
- 【c语言】有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数
- 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
- 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
- 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
- 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
- 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数
- [转]测试工具的选择和使用
- C循环取出数据
- air 的安全机制
- 动态使用结构数据大小
- 次贷危机的本质
- 有n个整数,使前面各数后移m个位置,最后m个数变成最前面m个数,在主函数输入n个整数和输出调整后n个整数.
- 对系统调用和内存分配检查是否执行成功
- c典型算法 递归
- 启明 游戏
- AP模块关帐心得
- 命运
- C #中的几个线程同步对象方法
- [推荐]毕业奋斗八年成功后有感,给年轻人的10个忠告
- 防止内存泄漏