前言
第一周主要希望大家能够把握C语言语法 因此出的题目大部分是基础语法题
另外也会设有简单的数据结构题 来给学有余力的同学展示自己的水平
结果与结题过程等同重要
一题多解 、正确的分析出算法的时间复杂度与空间复杂度 有加分
第一题 斐波那契的兔兔
知识点
- 递归
- 动态规划 记忆化搜索
- 实现键值对应的数据结构 如哈希表 或者数组骚操作
段位
黑铁~黄金
背景
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问n个月后的兔子总数为多少对?
输入
输入正整数 n
输出
兔子的个数
数据范围
程序能解决的n越大越好 不限制
示例
Input: 1
Output: 1
Input: 3
Output: 2
Input: 8
Output: 21
第二题 递归吃桃子
知识点
- 小学数学
- 递归
段位
黑铁
背景
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?
输入
输入正整数 n
输出
第一天的桃子数
加分
如果题目的第十天
我改成第n天
(n为输入参数) 该怎么办呢?
第三题 快乐数
知识点
- 暴力模拟
- 找规律
- 数据结构(如哈希表)
段位
白银~黄金
背景
编写一个算法来判断一个数 n 是不是快乐数。
如果 n 是快乐数就返回 True ;不是,则返回 False 。
「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。
输入
输入正整数 n
输出
bool 判断是否为快乐数
是:true
否:false
数据范围
程序能解决的n越大越好 不限制
示例
Input: 19
Output: true
explanation:
第四题 排序
知识点
- 字符串操作
- 排序算法
- 数组或者其他同样效果的数据结构
段位
白银~黄金
背景
现有一堆由数字和字母组成的字符串,请找出其中数字,分离出来 并排序 输出
输入
一串由数字和字母组成的字符串
输出
一串从左到右,由小到大 排序好的数字 要求去重
数据范围
程序能解决的字符串长度n 越大越好 不限制
示例
Input: ewe136d5s2n4j5k9jh7
Output: 12345679
后记 要求
请上交程序给你的组长 提供以下材料:
- 源代码
.c
.cpp
或者.java
- 思路说明 建议不要仅仅用注释代替思路说明 除非真的很简单:)
- 每周周日下午为上交截止时间 早交有加分