刷题笔记:Division(UVa725)做题心得

CodeingBoy 2月 27, 2017

题目

输入一个数(N),从 0~9 中选出数字组成 abcde / fghij = N 的组合,每位数字只能使用一次(除了 N)。

UVa 题目链接

版本 1

根据题目,使用穷举法穷举 fghij 即可。因为 N 是给定的,所以可以根据 N * fghij 求得 abcde,然后对这些数字进行判定即可。

代码如下:

编译跑了一下,发现两个错误:

  1. 直接显示了 num1,若 num1 是 4 位数的情况下,没有显示前导 0
  2. num1 可能为 6 位数,这是不允许的

版本 2 & 版本3

版本 2 对这第二个问题进行修正:

如果传入的 num2 为4 位,就认定为数字 0 已经存在。同时也在穷举 num2 的时候进行一定程度上的剪枝。

版本 3 对第一个问题进行修正:

通过判定数字的大小,输出的时候添加前导 0。

版本 4

然而发现 num1 的位数也可能为 4 位,因此也添加了 num1 为 4 位时的应对措施。

到了这里,应该就差不多了,然而提交的时候提示 Presentaion Error……

版本 5

看了看题目,原来是说每两个输出之间间隔一行,而不是每个输出后跟一个空行。

Separate the output for two different values of N by a blank line.

因此添加:

添加后再次提交,终于 AC。

本文采用 CC BY-NC-SA 3.0 协议进行许可,在您遵循此协议的情况下,可以自由共享与演绎本文章。
本文链接:https://blog.codeingboy.me/%e5%88%b7%e9%a2%98%e7%ac%94%e8%ae%b0%ef%bc%9adivision%ef%bc%88uva725%ef%bc%89%e5%81%9a%e9%a2%98%e5%bf%83%e5%be%97/

发表评论

电子邮件地址不会被公开。 必填项已用*标注