gpt4 book ai didi

c++ - C++ 中的数字反转

转载 作者:太空宇宙 更新时间:2023-11-04 15:42:51 24 4
gpt4 key购买 nike

当我将一个大于 1 的奇数数字传递给函数时,我得到的结果比我应该得到的实际结果少 1,而且代码对于偶数数字来说工作得很好,我无法弄清楚为什么.

int rev_number(int num){
int arr [10];
int i=0;
int j=0;
int rev_num=0;
while(num > 0){
arr[i] = num%10;
num = num/10;
i++;
}
i--;
while(i>=0){
rev_num += arr[j] * pow(10,i);
j++;
i--;
}
return rev_num;
}

最佳答案

您应该避免使用返回 doublepow 而您只想操作整数。例如,想象一下如果 arr[j] * pow(10,i) 的结果是 753.99...,转换只会将 753 放入 rev_num!在某些情况下,这会起作用,但并非总是如此。这是工作的五十分机会。

尝试替换:

rev_num += arr[j] * pow(10,i);

rev_num = rev_num * 10 + arr[j];

您是否尝试过舍入或添加 .5?这也能解决您的问题吗?

关于c++ - C++ 中的数字反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20775204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com