递归算法:

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. novaclient的api调用流程与开发
  2. java序列化和RMI
  3. Android入门学习教程PDF免费下载
  4. 深度学习(二十一)——SRCNN, DRCN, VDSR
  5. 开始ubuntu 14.04 的装X模式---终端模式下中文输入,听歌,上irc 开启framebuffer看电影 截图...
  6. LeetCode MySQL 1204. 最后一个能进入电梯的人(累加/变量/窗口函数)
  7. Quick BI v3.0版本全新起航——2018杭州云栖大会
  8. 墨天轮章芋文:用十年打造中国的数据库生态体系
  9. Excel在表格框中插入对勾✅
  10. 功能表单之人员构造器字段类型详解—JEPLUS软件快速开发平台
  11. Can not find the tag library descriptor for http://java.sun.com/jsp/jst1/core
  12. 软件各种版本的含义!例如RC,M,GA等等
  13. obj类型的3d人体模型解读
  14. 【2019】【论文笔记】基于混合石墨烯金属结构的可重构THz Vivaldi天线——
  15. 三年级优秀书籍推荐_三年级好书推荐
  16. 魔众EDM邮件营销系统 v1.1.0 页面SEO优化,系统升级调整
  17. 学习中LINUX中常见问题
  18. 多个服务器数据互通_打造生态循环《剑网3:指尖江湖》第二批服务器数据互通...
  19. Linux安装yum(红帽子)rpm
  20. .bat脚本基本命令语法

热门文章

  1. Python 打印字典的KEY 和 VALUE
  2. linux 防火墙检查
  3. python画图小猪佩奇_用Python代码画小猪佩奇 Python简直太神奇了
  4. RSA、DSA算法原理与举例
  5. python数据分析与应用第四章_《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算...
  6. kvm虚拟机_关于虚拟机管理KVM,基本操作都在这里,懒人必备,拿去收藏
  7. CS224N笔记——神经机器翻译与Attention机制
  8. Windows应用程序组成及编程步骤
  9. 在.NET项目中使用PostSharp,使用MemoryCache实现缓存的处理
  10. 程序员生存定律--如何尽快变的稍微专业一点