实现一个函数divide(int a, int b, int c)
,以输出以10为底的值a/b
。而不使用任何浮点数学或BigInteger
/ BigDecimal
或等效库。除下面第4点中的(可能的)例外外,至少必须打印c
一组正确的字符0123456789.
。
a
和b
可以是任何的32个整数。更新:如果打高尔夫球的目的,你想有输入是64个原语是好的,但你并不需要支持数据的全部64位范围。- 如果不是,则无需检查是否
c
为正(尽管希望您的程序不会崩溃)。 - 的最小支持上限
c
是500
。如果您的程序不支持c
上述值可以500
,但是也可以。 - 对于均分的数字,是选择打印额外的零(基于的值
c
)还是不打印任何内容。 - 您不需要使用该函数就可以执行任何其他任务,唯一的目标是打印。
- 对于之间的数字
-1
和1
,这是你的选择是否打印的领先0
。但是,这是唯一可以接受打印前导零的情况,并且您只能打印一个这样的零。 - 您可以使用最后一个小数位所需的舍入/下限/ ceil逻辑。
- 对于否定答案,您必须打印前导
-
。这不计入c
。然而,这是你的选择,如果你想打印,
+
或者没有一个肯定的回答。 - 整数除法和整数模数均允许。但是,请记住,除非您选择实现自己的
BigInteger
/BigDecimal
库(取决于代码长度),否则您仅限于基元。 - 尽管您可以,但是您不需要处理
b
being0
。如果b=0
,您的程序可能会进入无限循环或崩溃,并且不会受到处罚。 - 每个注释的规则略有更改。为确保公平竞争,
a
并且b
确保且保证为32位整数,可以使用64位长的整数。如果您选择的语言作为基本语言超出了64位整数,则您在任何时候都不能使用该功能(假装它的上限为64位)。 - 尚不清楚的另一点(尽管它不应更改任何当前有效的答案):虽然
c
可以解释为打印的字符数或小数点后的空格数,但是程序必须c
以某种相关方式使用决定要打印多少个字符。换句话说,divide(2,3,2)
输出应该比divide(2,3,500)
; 短得多。不考虑印刷500个字符是不行的c
。 - 我实际上并不在乎函数的名称。
d
可以打高尔夫球。
输入值
函数调用和读取stdin
均被接受。如果您从阅读stdin
,则集合中未包含的任何字符[-0123456789]
均被视为参数定界符。
输出量
stdout
如上所述的字符。
例
对于divide(2,3,5)
,以下所有都是可接受的输出:
0.666
0.667
.6666
.6667
0.666
0.667
.6666
.6667
+0.666
+0.667
+.6666
+.6667
另一个示例:divide(371,3,5)
以下是所有可接受的输出:
123.6
123.7
123.6
123.7
+123.6
+123.7
123.66666
123.66667
123.66666
123.66667
+123.66666
+123.66667
并且对于divide(371,-3,5)
以下各项都是可以接受的:
-123.6
-123.7
-123.66666
-123.66667
92,3,5
回答了,例如,30.67