【发布时间】:2018-05-14 13:17:28
【问题描述】:
您好,我有一个long long 号码,长度为 13,15 和 16 位。我想得到这些数字的前两位(从左边开始)。
例如:
Enter Number = 1234567890123;
First 2 digits = 12
Enter Number = 453456789012345;
First 2 digits = 45
Enter Number = 3534567890123456;
First 2 digits = 35
【问题讨论】:
-
那么到目前为止,您尝试过什么?就 C 实现而言,您不了解问题的哪一部分?你熟悉 C 算术运算符吗?如果没有,您应该查看 C 文档。
-
作为一种快速且非常肮脏的技巧,您可以将数字转换为字符串,使用长度为 2 的子字符串,然后将该字符串解析回数字。
-
特别是如果该数字在编译时可用,那么它不再是一个肮脏的黑客而是正确的解决方案。这看起来像一个运行时变量,然后接受的答案很好,但我发布了一个编译时版本仅供参考。
-
数字转字符串,反转字符串,转回整数,取
% 100,再转字符串,再反转。如有必要,最后再次转换为整数。 :-)