
上一节课是复习课, 今天信息课正式步入正轨。
主要内容:
- 老师讲了。。。。。
- 老师讲了。。。。
- 老师讲了。。。
- 老师讲了。。。
问题 A: 满足条件三个三位数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| 将1—9这9个数字分成三组(每个数字只能使用一次),分别组成三个三位数的值构成1:2:3的比例,试求出所有满足条件的三个三位数。例如以下三个三位数就是其中一个解。 1 9 2 3 8 4 5 7 6
显然满足条件的三个三位数,有多组解。编写一个程序,输入一个整数K,输出按第一个三位数从小到大顺序中第K个解。
输入仅有一个整数K。
输出仅有一行,从小到大的三个三位数,相邻两个数之间有一个空格。
1
192 384 576
#include <iostream> using namespace std; int main() { return 0; }
|
问题 B: 走楼梯
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 楼梯有 N 级台阶,上楼可以一步上一阶, 也可以一步上二阶。 编程序,计算共有多少种不同走法?
输入一个整数,表示n(n<=50)。
输出一个整数,表示走法的个数。保证答案不超2^63-1.
3
3
输入输出均在64位整数范围内。
#include <iostream> using namespace std; int main() { return 0; }
|
问题 C: 不同的放置方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| N个同样的袋子里放M个同样的球,允许有的袋子空着不放,问共有多少种不同的放置方法。例如N=3,M=7时,答案为8。在这里认为(5,1,1),(1,5,1)就同一种。
输入仅有一行,包含两个整数N,M。(1<=N,M<=1000)
输出仅有一个整数,表示答案mod 100000007。
3 7
8
#include <iostream> using namespace std; int main() { return 0; }
|
问题 D: 猴子吃桃
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 海滩上有一堆桃子,N只猴子来分。第一只猴子把这堆桃子平均分为N份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子接着把剩下的桃子平均分成N份,又多了一个,它同样把多的一个扔入海中,拿走了一份。第三、第四、……,第N只猴子仍是最终剩下的桃子分成N份,扔掉多了的一个,并拿走一份。 编写程序,输入猴子的数量N,输出海滩上最少的桃子数,使得每只猴子都可吃到桃子。
一组整数,最后一个整数是0,表示输入结束,其余整数均大于1。
对输入的每个整数N,输出当猴子数量为N时海滩上最少的桃子数。所输出的每个整数占一行。结果保证在int型范围内。
2 4 0
7 253
#include <iostream> using namespace std; int main() { return 0; }
|
问题 E: 平面分割
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 同一平面内有 n( n≤500) 条直线,已知其中 p( p≥2) 条直线相交于同一点,则这 n 条直线最多能将 平面分割成多少个不同的区域?
两个整数 n( n≤500)和 p( 2≤p≤n)。
一个正整数, 代表最多分割成的区域数目。
12 5
73
#include <iostream> using namespace std; int main() { return 0; }
|