问题描述
我正在尝试更有效地反转十进制数。
#include <stdio.h>
int main()
{
while(1)
{
int a,result;
scanf("%d",&a);
result=(a%10*10)+(a/10);
printf("%d\n",result);
}
}
当然,这只适用于 2 个十进制数字。
但我试图找出如何以有效的方式(更少的代码)反转更多数字
解决方法
#include <stdio.h>
int main()
{
long in = 3456789;
long out = 0;
while(in)
{
out *= 10;
out += in % 10;
in /= 10;
}
printf("%ld\n",out);
return 0;
}
这种方式适用于所有类型的数字,无论位数是多少,只要它与数据类型匹配即可。
,抱歉,我需要更具体一些。更少的代码 –
丑陋但用于“反转”数字的简短代码。
int main(){int c=getchar();if(isdigit(c))main();putchar(c);}