s*****r 发帖数: 773 | 1 1 reverse一个整数, 也就是给一个整数, 反过来输出这个整数, e.g, 123 输出321
2 给一个float, e.g, 123456.78, 输出123,456.78
题目可能记得不是太清楚, 请问这两个题目, 是就只是要输出来, 还是要把结果也报存
了返回? 另外, 这两个题目有什么trap或者边界条件需要考虑的?
谢谢了. | r****o 发帖数: 1950 | 2 负数可能会溢出。
另外2的小数部分如果也加,号的话好像很难搞定。
【在 s*****r 的大作中提到】 : 1 reverse一个整数, 也就是给一个整数, 反过来输出这个整数, e.g, 123 输出321 : 2 给一个float, e.g, 123456.78, 输出123,456.78 : 题目可能记得不是太清楚, 请问这两个题目, 是就只是要输出来, 还是要把结果也报存 : 了返回? 另外, 这两个题目有什么trap或者边界条件需要考虑的? : 谢谢了.
| s*****r 发帖数: 773 | 3 题目到底要求是啥, 呵呵?
【在 r****o 的大作中提到】 : 负数可能会溢出。 : 另外2的小数部分如果也加,号的话好像很难搞定。
| y****w 发帖数: 3747 | 4 2小数部分处理时候用精度,不要用==0之类。
【在 s*****r 的大作中提到】 : 1 reverse一个整数, 也就是给一个整数, 反过来输出这个整数, e.g, 123 输出321 : 2 给一个float, e.g, 123456.78, 输出123,456.78 : 题目可能记得不是太清楚, 请问这两个题目, 是就只是要输出来, 还是要把结果也报存 : 了返回? 另外, 这两个题目有什么trap或者边界条件需要考虑的? : 谢谢了.
| f****4 发帖数: 1359 | 5 1 reverse一个整数, 也就是给一个整数, 反过来输出这个整数, e.g, 123 输出321
-正负数
-reverse之后会出现溢出的情况
-2340 reverse之后只能输出 432
2 给一个float, e.g, 123456.78, 输出123,456.78
这个是我发的帖子,但实际上我是为了找一个人写的blog(那个blog有详细的实现);
并不是bbg的面试题
这题目的难点在于怎么取到float的小数部分————这是一个非常复杂的topic
(int)float_num; 在这是不work的,因为很容易就溢出了
good luck for your bbg interview
已经move on的人路过 :( | w******0 发帖数: 43 | 6 第一次这么解决怎么样
int a = 2340
int temp = a
while(temp > 10)
{
printf("%d ", temp%10);
temp = temp/10;
}
printf("%d",temp);
【在 f****4 的大作中提到】 : 1 reverse一个整数, 也就是给一个整数, 反过来输出这个整数, e.g, 123 输出321 : -正负数 : -reverse之后会出现溢出的情况 : -2340 reverse之后只能输出 432 : 2 给一个float, e.g, 123456.78, 输出123,456.78 : 这个是我发的帖子,但实际上我是为了找一个人写的blog(那个blog有详细的实现); : 并不是bbg的面试题 : 这题目的难点在于怎么取到float的小数部分————这是一个非常复杂的topic : (int)float_num; 在这是不work的,因为很容易就溢出了 : good luck for your bbg interview
| f****4 发帖数: 1359 | 7 只对一部分正整数有用
负数,溢出都没处理
上次看到一个人的帖子 bloomberg final fail的
说让他实现“很简单”的atoi
其实atoi里面有好多trap
-正负号
-单个char是否有意义
-正负数溢出是不同的
-实际应用的版本还要考虑数位进制的问题,2,8,10,16进制
【在 w******0 的大作中提到】 : 第一次这么解决怎么样 : int a = 2340 : int temp = a : while(temp > 10) : { : printf("%d ", temp%10); : temp = temp/10; : } : printf("%d",temp);
| s*****r 发帖数: 773 | 8 那怎么搞?
【在 f****4 的大作中提到】 : 只对一部分正整数有用 : 负数,溢出都没处理 : 上次看到一个人的帖子 bloomberg final fail的 : 说让他实现“很简单”的atoi : 其实atoi里面有好多trap : -正负号 : -单个char是否有意义 : -正负数溢出是不同的 : -实际应用的版本还要考虑数位进制的问题,2,8,10,16进制
| f****4 发帖数: 1359 | 9 sorry,没注意看到只要输出
输出的话不要考虑溢出的问题,只要加个正负号就好了 | o***e 发帖数: 497 | 10 第一个题,-123应该输出多少?
-321? 还是321?
【在 s*****r 的大作中提到】 : 1 reverse一个整数, 也就是给一个整数, 反过来输出这个整数, e.g, 123 输出321 : 2 给一个float, e.g, 123456.78, 输出123,456.78 : 题目可能记得不是太清楚, 请问这两个题目, 是就只是要输出来, 还是要把结果也报存 : 了返回? 另外, 这两个题目有什么trap或者边界条件需要考虑的? : 谢谢了.
| s*****r 发帖数: 773 | 11 应该是 -321
【在 o***e 的大作中提到】 : 第一个题,-123应该输出多少? : -321? 还是321?
| o***e 发帖数: 497 | 12 #include
using namespace std;
int reverse(const int input, int &output)
{
if (input < INT_MIN || input > INT_MAX) {
output = 0;
return -1;
}
cout <<"input:" << input << endl;
int absolute = abs(input);
int ispositive = (input < 0) ? -1 : 1;
while ( absolute > 10) {
int cur = output + (absolute % 10);
absolute /= 10;
if((ispositive == 1) && ( (cur == INT_MAX / 10 && absolute > INT_MAX
% 10) || (cur > INT_MAX / 10)) ) {
【在 s*****r 的大作中提到】 : 应该是 -321
|
|