是否很久没抽象和逻辑了呢? DODO它吧(很基础)

[b]1. 线程问题。
[/b] 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

[b]2. 数字转化问题。[/b]
将一个键盘输入的数字转化成中文输出(例如:输入:1234567 输出:一百二拾三万四千五百六拾七)。

[b]3. 全排列问题。[/b]
输出自然数1~n的所有不重复的排列, 即n的全排列。

[b]4. 不全排列问题(不重复)。
[/b] 给定n(1[b]5. 大整数问题[/b]。
编程求档N[b]6. n阶魔方阵问题。
[/b] n阶魔方是指这样一种方阵,它的每一行、每一列以及对角线上的各数之和为一个相同的常数.
编程求解n(n[b]7. 填写运算符问题。
[/b] 输入任意六个数x1,x2,x3,x4,x5和y,在前五个每相邻数之间填上一个运算符("+", "-", "*", "/")。使得计算出来的值等于y。

[b]8. 数字迷问题。[/b]
A B C A B
X A
------------
D D D D D D

[b]9. 简单分治问题。
[/b] 用递归分治法求出n个元素集合中的最大值和最小值。

[b]10. 大整数乘法。[/b]
设计一个有效地算法,进行两个n(n[b]11. 取数问题。
[/b] 有两个人轮流取2n个数中的n个数,所取数之和大者为胜。请编写算法,让先取数者胜,模拟取数过程。

[b]12. 币值统计问题。[/b]
某单位给每个职工发工资(精确到元),为了保证不要临时归还零钱且取款的张数最少,取工资前需要统计出所有职工的工资所需
各种币值(100,50,20,10,5,2,1元共7种)的张数,请编程完成。

[b]13. 子集分划问题。[/b]
给定正整数n, 计算出n个元素的集合{1,2,...,n}可以划分为多少个不同的非空子集。

[b]14. 最X序列问题。[/b]
找出由n个数组成的序列的最长单调递增子序列。

[b]15. 硬币找钱问题。[/b]
有6种不同面值的硬币,各硬币的面值分别为5分、1角、2角、5角、1元和2元。先要用这些面值的硬币来购物和找钱。
购物时可以使用的各种面值的硬币个数存于数组coins[6]中,商店里各面值的硬币有足够多。在一次购物中希望使用最少硬币个数。
对于给定的各种面值的硬币个数和付款金额,编程计算使用硬币个数最少的交易方案。

input: 输入6个整数和一个2位小数的实数,分别代表可以使用的各种面值的硬币个数和付款金额。
output:最少硬币个数。 如果不可能完成交易,则输出"impossible"。

[b]16. 作业调度问题。[/b]
n个作业(1,2,...,n)要在由两台机器M1和M2组成的流水线上完成加工。每个作业加工顺序都是现在M1上加工,
然后再M2上加工。M1和M2加工作业i所需要的时间分别为ai和bi。确定这n个作业的最优加工顺序,使得从第一个
作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需要的时间最少。

比如:
n=3
-------------------------------------------------
作业i 机器M1 机器M2
1 2 1
2 3 1
3 2 3
-------------------------------------------------
这3个作业的6种可能的调度方案是(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1),它们所对应的完成时间和分别是19,18,20,21,
19,19. 显而易见,最佳调度方案是(1,3,2),其完成时间和为18.

[b]17. 字符统计问题。
[/b] 编写一个算法,统计在一个输入字符串中各个不同字符出现的频度。

[b]18. 最优服务次序问题。
[/b] 设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1[b]19. 多处最优服务次序问题。[/b]
设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1[b]20. 最优分解问题。[/b]
设n是一个正整数。现在要求将n分解为若干互不相同的自然数之和,且使这些自然数的乘积最大。

[b]21. 工作分配问题。[/b]
设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij。试设计一个算法,为每一个人都分配一件不同的工作,
并使总费用达到最小。

input:第一行有1个正整数n(122. 最佳调度问题。[/b]
假设有n个任务由k个可并行工作的机器来完成。完成任务i所需要的时间为ti。试设计一个算法找出完成这n个任务的最佳调度,使得完成全部
任务的时间最短。

输入:第一行有两个正整数n和k。
第二行的n个正整数是完成n个任务需要的时间。
输出: 完成全部任务的最短时间。

例如:
input:7 3
2 14 4 16 6 5 3
output:17

[b]23. 无优先级运算问题。[/b]
给定n个正整数和4个运算符+,-,*,/,且运算符无优先级,如 2+3*5=25.对于任意给定的整数m,试设计一个算法,用以上给出的n个数
和4个运算符,产生整数m,且用的运算次数最少。给出的n个数中每个数最多只能用1次,但每种运算符可以任意使用。
输入:第一行有2个正整数n和m
第二行是给定的用于运算的n个正整数。
输出:将计算出的产生整数m的最少无优先级运算次数以及最优无优先级运算表达式输出。

例如:
input:5 25
5 2 3 6 7
output:2
2+3*5

[b]24. 算24点问题。[/b]
给定4个正整数, 用算术运算符+,-,*,/将这4个正整数连接起来,使最终的得数恰好为24.

例如:
input:1 2 3 7
output: 2+1=3; 3*7=21; 21+3=24
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
n个正整数和4个运算符,有多少种不同的合法表达式可以通过这些数字和运算符构造出来? 这个问题可以用递归的方式解决。我们可以从左到右扫描给定的数字和运算符,对于每个运算符,我们可以将其左右两边的数字分别作为左右子表达式,然后递归求解左右子表达式的值。最后将左右子表达式的值按照当前运算符进行运算,就得到了当前表达式的值。 具体实现时,我们可以使用一个递归函数,该函数的参数为当前要处理的数字和运算符的位置,以及当前已经构造出来的表达式的值。在递归过程中,我们需要判断当前位置是否已经到达了表达式的末尾,如果到达了末尾,则将当前表达式的值加入到结果集合中。否则,我们需要遍历所有可能的运算符,将左右子表达式的值递归求解,然后将它们按照当前运算符进行运算,得到当前表达式的值。 下面是一个Python实现的例子: ```python def evaluate(nums, ops, pos, res, ans): if pos == len(nums): ans.add(res) return for op in ops: if pos > 0: evaluate(nums, ops, pos + 1, eval(f"{res}{op}{nums[pos]}"), ans) else: evaluate(nums, ops, pos + 1, nums[pos], ans) nums = [1, 2, 3] ops = ['+', '-', '*', '/'] ans = set() evaluate(nums, ops, 0, 0, ans) print(len(ans)) # 输出 256 ``` 在这个例子中,我们假设给定的数字为[1, 2, 3],运算符为['+', '-', '*', '/'],然后调用evaluate函数进行计算。初始时,我们将当前位置pos和当前表达式的值res都设置为0,然后递归调用evaluate函数,将左右子表达式的值分别递归求解,并按照当前运算符进行运算,得到当前表达式的值。最后将所有不同的表达式值加入到结果集合ans中,最终输出结果集合的大小。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值