FLS SDF2021 培训02期 第三课

上一节课是复习课, 今天信息课正式步入正轨。
主要内容:

  1. 老师讲了。。。。。
  2. 老师讲了。。。。
  3. 老师讲了。。。
  4. 老师讲了。。。

问题 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
//题目描述
199个数字分成三组(每个数字只能使用一次),分别组成三个三位数的值构成123的比例,试求出所有满足条件的三个三位数。例如以下三个三位数就是其中一个解。
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;
}

分享到