每周更新的练习曲集,供精明的程序员学习和欣赏
我女儿本周来访,所以没有锻炼。下一次演习将于12月3日星期二举行。享受与家人在一起的时光。
我在处理这个问题时玩得很开心:
鉴于n个,查找x个,年和z(z)这样的话x y z轴=n个和x个 + 年 + z(z)最小值;例如,给定n个=1890,正确答案是(9 14 15)。
你的任务是编写一个程序来查找x个,年和z(z)。完成后,欢迎您阅读或运行建议的解决方案,或在下面的评论中发布自己的解决方案或讨论练习。
页:1 2
我们用两个步骤解决了标准硬币兑换问题以前的 练习这里给出的具体问题是,在给定各种面额的硬币数量不限的情况下,找出可用于创建目标货币数量的最小硬币数量,通常通过动态编程算法解决。
今天的任务是解决这个问题的一个变体:在给定无限数量的5次方面额硬币的情况下,找到可用于创建目标金额的最小硬币数量。
你的任务是编写一个程序来解决修改后的硬币兑换问题。完成后,欢迎您阅读或运行建议的解决方案,或在下面的评论中发布自己的解决方案或讨论练习。
周五午餐时间,我们有一个有趣的小任务:
给定一个整数数组,重新排列整数,使两个连续整数的和都不可被3整除,或者表明这种排列是不可能的。
您的任务是编写一个程序来重新排列前面描述的整数数组。完成后,欢迎您阅读或运行建议的解决方案,或在下面的评论中发布自己的解决方案或讨论练习。
我们以前也这样做过,但我在这个周末的三个不同的初学者编程论坛上看到了关于这个任务的问题(一定是在这个学期老师介绍链接列表的时候),做一些基本的练习也不会有什么坏处。
你的任务是编写一个程序来反转链表。完成后,欢迎您阅读或运行建议的解决方案,或在下面的评论中发布自己的解决方案或讨论练习。
今天的练习是某人的作业:
A类袋是密钥/计数对的列表:例如,一个包含三个项目E、三个项目R和三个项目a的袋子可以写为E3R3A3。两个袋子的组合是一个包含钥匙/计数对列表的单个袋子,其中两个袋子中的每个袋子中的每一个都有其计数组合在一个单独的袋子中:例如,袋子E3R3A3和B3R3F3的组合是E3R6A3F3。袋子中物品的顺序并不重要。
你的任务是编写三个程序来计算两个袋子的并集,时间复杂度为O(锰),O型((米+n个)日志(米+n个))、和O(米+n个),其中米和n个是这两个袋子的尺寸。完成后,欢迎您阅读或运行建议的解决方案,或在下面的评论中发布自己的解决方案或讨论练习。
当我介绍这个话题时地穴(1)上周,我的实际目标是使用预计起飞时间加密文件上;那时我才意识到地穴(1)失踪了预计起飞时间不再有-x个标志。我不想要任何花哨的东西,只想要基本的加密。我认识老人地穴(1)这并不好(实际上,四十年前推出时也不好),但我很惊讶Unix和Linux没有跟上某种加密的步伐。骗子!
地穴(1)
预计起飞时间
-x个
你的任务是增强预计起飞时间通过添加-x个加密标志。完成后,欢迎您阅读或运行建议的解决方案,或在下面的评论中发布自己的解决方案或讨论练习。
在上一次练习我试图编写一个替代旧的Unix crypt(1)程序的程序,但从未想过如何在Chez Scheme中输入密码。所以今天我有C语言的程序。
回答上一个练习中出现的一些问题:是的,我知道加密是的,我知道我不应该依赖我写的任何密码。是的,最初的Unix地下室虽然不是很安全,但至少我可以说我的地下室现在比Unix好地下室当时是。
加密
地下室
你可以看到我的地下室上的程序下一页.