程序设计实习MOOC / 程序设计与算法(二)第二周测验(2018春季)
递归算法:
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);
}
程序设计实习MOOC / 程序设计与算法(二)第二周测验(2018春季)的更多相关文章
- 程序设计实习MOOC / 程序设计与算法(一)第二周测验(2018春季)
编程题: 1:对齐输出 总时间限制: 1000ms 内存限制: 65536kB 描述 读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们. 输入 只有一行,包含三个整数,整数之间以一个空格分 ...
- 程序设计实习MOOC / 程序设计与算法(三)第二周测验
6. 学生信息处理程序 总时间限制: 1000ms 内存限制: 1024kB 描述 实现一个学生信息处理程序,计算一个学生的四年平均成绩. 要求实现一个代表学生的类,并且类中所有成员变量都是[私有的] ...
- 程序设计实习MOOC / 程序设计与算法(三)第一周测验
作业题: 7. 填空(2分)简单的swap 通过码是 ( 请参考公告中的“关于编程作业的说明”完成编程作业(请注意,编程题都要求提交通过码,在openjudge上提交了程序并且通过以后,就可以下载到通 ...
- 吴恩达《深度学习》-课后测验-第五门课 序列模型(Sequence Models)-Week 2: Natural Language Processing and Word Embeddings (第二周测验:自然语言处理与词嵌入)
Week 2 Quiz: Natural Language Processing and Word Embeddings (第二周测验:自然语言处理与词嵌入) 1.Suppose you learn ...
- 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第二周测验【中英】
[中英][吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第二周测验 第2周测验 - 神经网络基础 神经元节点计算什么? [ ]神经元节点先计算激活函数,再计算线性函数(z = Wx + ...
- 吴恩达《深度学习》-课后测验-第一门课 (Neural Networks and Deep Learning)-Week 2 - Neural Network Basics(第二周测验 - 神经网络基础)
Week 2 Quiz - Neural Network Basics(第二周测验 - 神经网络基础) 1. What does a neuron compute?(神经元节点计算什么?) [ ] A ...
- 程序设计实习MOOC / 继承和派生——编程作业 第五周程序填空题1
描述 写一个MyString 类,使得下面程序的输出结果是: 1. abcd-efgh-abcd- 2. abcd- 3. 4. abcd-efgh- 5. efgh- 6. c 7. abcd- 8 ...
- 20165101刘天野 2017-2018-2 《Java程序设计》 结对编程练习_四则运算(第二周)
20165101刘天野 2017-2018-2 <Java程序设计> 结对编程练习_四则运算(第二周) 一.需求分析 能随机生成n道四则运算题目,n由使用者输入 支持分数运算 支持多运算符 ...
- 20175234 《Java程序设计》第二周学习总结(二)
学习内容总结 运算符与表达式 If语句.switch语句 break和continue语句 数组和for语句 IDEA的安装和调试 教材学习中的问题和解决过程 在第一次使用IDEA中出现了一些情况,在 ...
随机推荐
- 页面缓存之Meta http-equiv属性详解
http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变 ...
- 即时通信系统Openfire分析之三:ConnectionManager 连接管理
Openfire是怎么实现连接请求的? XMPPServer.start()方法,完成Openfire的启动.但是,XMPPServer.start()方法中,并没有提及如何监听端口,那么Openfi ...
- 邮件中的CC和BCC含义
CC 英文全称是 Carbon Copy(抄送);BCC英文全称是 Blind CarbonCopy(暗抄送). 两者的区别在于在BCC栏中的收件人可以看到所有的收件人名(TO,CC,BCC),而在T ...
- VIM各种快捷应用
vim +n filename 打开文件,光标直接跳转到第n行 w 移动光标到下一个单词的词首, b 移动光标到上一个单词的词首 e 移动光标到下一个单词的结尾, ge 移动光标到上 ...
- codevs 1500 后缀排序
codevs 1500 后缀排序 http://codevs.cn/problem/1500/ 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 天凯是MI ...
- MySQL学习(一)——Java连接MySql数据库
MySQL学习(一)——Java连接MySql数据库 API详解: 获得语句执行 String sql = "Insert into category(cid, cname) values( ...
- Qt_扫雷游戏实现
源代码下载(详细注释): 详细代码(注释): https://github.com/xiaocangtian/GameMine 链接: http://pan.baidu.com/s/1gf9Ux5h ...
- Linux安装python模块
# 依赖解决 # yum -y install epel-release python-devel gcc # 安装模块 # pip install psutil (若没有pip命令,可通过 yum ...
- Table of Contents - Python 2.x
异常 异常类的继承关系 日志 标准日志模块 Hello World Logging Configuration
- Python入门系列教程(五)函数
全局变量 修改全局变量 a=100 def test(): global a a=200 print a 多个返回值 缺省参数 def test3(a,b=1): print a,b test3(a) ...