递归算法:

1:全排列

总时间限制: 
1000ms
内存限制: 
65536kB
描述

给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列。

输入
输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。
输出
输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前面。字母序如下定义:

已知S = s1s2...sk , T = t1t2...tk,则S < T 等价于,存在p (1 <= p <= k),使得
s1 = t1, s2 = t2, ..., sp - 1 = tp - 1, sp < tp成立。

样例输入
abc
样例输出
abc
acb
bac
bca
cab
cba

答案:

#include <iostream>
#include <cstring>
using namespace std;
int n = 0;  void swap(char *a ,char *b)
{  int m ;  m = *a;  *a = *b;  *b = m;
}   void perm(char list[],int k, int m )
{  int i;  if(k >m)  {  for(i = 0 ; i <= m ; i++)  {  cout<<list[i];  }  cout<<"\n";  n++;  }  else  {  for(i = k ; i <=m;i++)  {  swap(&list[k],&list[i]);  perm(list,k+1,m);  swap(&list[k],&list[i]);  }  }
}  int main()
{  char list[50];cin.get(list,50);int len=strlen(list) - 1;perm(list,0,len);     return 0;
}

2:2的幂次方表示

总时间限制: 
1000ms
内存限制: 
65536kB
描述

任何一个正整数都可以用2的幂次方表示。例如:

137=27+23+20

同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为:

2(7)+2(3)+2(0)

进一步:7=22+2+20(21用2表示)

3=2+20

所以最后137可表示为:

2(2(2)+2+2(0))+2(2+2(0))+2(0)

又如:

1315=210+28+25+2+1

所以1315最后可表示为:

2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

输入
一个正整数n(n≤20000)。
输出
一行,符合约定的n的0,2表示(在表示中不能有空格)。
样例输入
137
样例输出
2(2(2)+2+2(0))+2(2+2(0))+2(0)

来源NOIP1998复赛 普及组 第一题

答案:

#include<cstdio>
#include<cstdlib>
#include<cstring>  void f(int n)
{  if(n==1)  {  printf("2(0)");  return;  }  if(n==2)  {  printf("2");  return;  }  int p=1;  int s=0;  while(p<=n)  {  p=p*2;  s++;  }  s=s-1;  if(n==p/2)  {  printf("2(");  f(s);  printf(")");      }  else  {  if(p/2==2)  {  printf("2");  printf("+");  f(n-p/2);  }  else  {  printf("2(");  f(s);  printf(")+");  f(n-p/2);  }  }
}  int main()
{  int n;  scanf("%d",&n);  f(n);
}

  

  

转载于:https://www.cnblogs.com/songqingbo/p/8657975.html

程序设计实习MOOC / 程序设计与算法(二)第二周测验(2018春季)相关推荐

  1. 045:魔兽世界三(开战) 程序设计实习MOOC / 程序设计与算法(三)测验题汇总(2020春季) 已经结束

    总时间限制: 2000ms 内存限制: 65536kB 描述 魔兽世界的西面是红魔军的司令部,东面是蓝魔军的司令部.两个司令部之间是依次排列的若干城市,城市从西向东依次编号为1,2,3 - N ( N ...

  2. 程序设计实习MOOC / 程序设计与算法(三)第一周测验

    作业题: 7. 填空(2分)简单的swap 通过码是 ( 请参考公告中的"关于编程作业的说明"完成编程作业(请注意,编程题都要求提交通过码,在openjudge上提交了程序并且通过 ...

  3. 【采访】腾讯社交广告高校算法大赛第二周周冠军——Groot 比赛经验及心得分享

    [采访]腾讯社交广告高校算法大赛第二周周冠军--Groot 比赛经验及心得分享 经过又一周紧张又激烈的角逐 腾讯社交广告高校算法大赛产生了第二周周冠军 他们的名字叫Groot 三个冷静沉着的大男孩 低 ...

  4. 腾讯广告算法大赛 | 第二周周冠军心得分享

    腾讯广告算法大赛第二周周冠军出炉, 从照片上推断, 这是一位颜值与机智并存的少年. 于是在我们的强烈邀请下, 小哥哥答应给大家分享主流ctr模型的选择- 大家好,我叫葛云鹏,是来自哈尔滨工业大学深圳研 ...

  5. 「数据结构」普林斯顿算法课第二周作业

    「数据结构」普林斯顿算法课第二周作业 Algorithm I, Princeton 编程作业: Deques and Randomized Queues 思路 Deque.java Randomize ...

  6. 【中英】【吴恩达课后测验】Course 3 -结构化机器学习项目 - 第二周测验

    [中英][吴恩达课后测验]Course 3 -结构化机器学习项目 - 第二周测验 - 自动驾驶(案例研究) 上一篇:[课程3 - 第一周测验]※※※※※ [回到目录]※※※※※下一篇:[课程4 -第一 ...

  7. 【中英】【吴恩达课后测验】Course 2 - 改善深层神经网络 - 第二周测验

    [中英][吴恩达课后测验]Course 2 - 改善深层神经网络 - 第二周测验 上一篇: [课程2 - 第一周编程作业]※※※※※ [回到目录]※※※※※下一篇: [课程2 - 第二周编程作业] 第 ...

  8. 北大程序设计实习MOOC 编程作业 《魔兽世界之二:装备》

    这次作业是在第一次的基础上完成的,主要要求是完成五种武士的封装.这五种武士的特性(相应类的成员变量)不大相同,但可以从同一个基类派生.随着时间变化,生成相应的武士,并输出相关信息.OJ地址为:这里 解 ...

  9. 程序设计实习MOOC/自增和自减运算符的重载

    自增和自减运算符的重载 问题 编写CDemo类,使得下面程序可以正常运行 int main(){CDemo d(5);cout << (d++) << "," ...

  10. Python语言程序设计(嵩天老师版)第二周笔记

    目录 一.第一周回顾 二.计算机技术的演进 三.编程语言的初心 编程语言的种类 不同的语言 四.python语言的特点 五.turtle库的使用 turtle背景介绍 import 一张纸--turt ...

最新文章

  1. 论文: Data-Driven Evolutionary Optimization: An Overview and case studies(1) 数据驱动概念,文章结构,大数分类
  2. 遍历boost::fibers::unbuffered_channel< unsigned int >的测试程序
  3. 基于kNN的手写字体识别——《机器学习实战》笔记
  4. oracle with as用法_as的用法那么多,你知道多少?
  5. 【MySQL】MySQL 查询优化器的提示(hint)
  6. JDBC未设置socket超时导致应用程序的线程池阻塞
  7. 使用cookies查询商品详情
  8. 医用口罩、N95、KN95口罩的区别
  9. hdu 2553(N皇后)
  10. 2021-11-23日win10更新bug:共享打印机无法连接的修复
  11. 制作动态微信二维码名片python
  12. java解析project mpp文件_Java利用mpxj解析mpp格式文件
  13. Java前方交会后方交会编程_摄影测量后方交会、前方交会程序
  14. Ubuntu linux ls 看到目录文件夹绿色高亮问题
  15. Travel around the UK
  16. 100项目插件激活程序验证码,自行复制
  17. zookeeper数据恢复
  18. Silverlight游戏设计(Game Design):(十三)帝国时代II (Demo) 之 “战争艺术”②
  19. 船上上去了30个人,超载,现需要下去15个人。将所有人编号1-30,1-9报数,数到第九个人下船,直到15个人下完为止
  20. Object Track(十):经典论文JDE速读

热门文章

  1. python-gui-pyqt5的使用方法-3--自定义信号的初识
  2. SQL分组字符串相连
  3. nbi可视化_教您通过NBI大数据可视化工具零编码轻松实现桑基图的制作
  4. Python文件中,reload(sys)找不到的问题
  5. 转:jdk动态代理实现
  6. python对象之间的关系
  7. 浅析2017快闪存储器涨势原因,AMOLED手机面板成主因?
  8. 跨应用的访问 contentprovider
  9. bash脚本基础概念注意点
  10. 从客户变成员工在租赁公司打工--我成为程序员所经历的(三)