这是一个倒数的公式吗?算法倒数
例如123-321?
编号为K
INV k = k%100 + K/10%,10 * 10 + K%10 * 100
我不知道我究竟写的,我需要这种权利在学校的图形算法
编辑任务:是的,我很愚蠢的xD我是初学者的xD
这是一个倒数的公式吗?算法倒数
例如123-321?
编号为K
INV k = k%100 + K/10%,10 * 10 + K%10 * 100
我不知道我究竟写的,我需要这种权利在学校的图形算法
编辑任务:是的,我很愚蠢的xD我是初学者的xD
这个逻辑会帮助你。变量inverse是输出。
int num = 123;
double inverse = 0;
while (num != 0)
{
inverse = inverse * 10;
inverse = inverse + num % 10;
num = num/10;
}
为什么'inverse'的类型是'double'而不是'int'? –
谢谢J. Piquard先生的评论......应该是int。但是双倍也没有问题。 –
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int i = 123045 , j = 0,k=0;
while(i != 0)
{
j=i%10;
k = k *10 + j;
i /=10;
}
printf("%d\n", k);
return 0;
}
输出 540321
如果您希望您的代码与任何数量的工作,可以考虑转换为字符串,然后扭转它!
int invert(int input)
{
std::stringstream str;
str << input;
std::string s = str.str();
std::reverse(s.begin(),s.end());
return atoi(s.c_str());
}
我宁愿直接在整数中做它,而不是做不必要的转换到/从字符串(涉及动态内存分配btw。)。 – axalis
我会分开计算更多,使他们更容易遵循,如'units = K%10;数十= ...;数百= ...;'然后当这些数字全部分开时,再次将它们合并为'inv = 100 * units + 10 * ten + hundred;'。 –
你对问什么不是很清楚。 123-321是你收到的一个字符串,必须验证它是一个回文。你收到'123'并且必须返回'321'?你收到的号码总是3位数字吗? – AntonH
我不需要写这个程序,但是我会绘制一个3位数的算法。 这是好方法还是不好? 我的英文很抱歉xD –