-2

我试图反向写数字,实际上我找到了一种不将它们转换为字符串的方法,但我的代码仅适用于 10000000000 以下。我不知道为什么我什至将 int 更改为 long long 但仍然不起作用。

#include <stdio.h>
#include <iostream>



using namespace std;


/*
 * 
*/
int main(int argc, char** argv) {
long long n;
scanf("%lld",&n);
printf("%lld",n%10);
for (int i=10;i<n;) {
    i=10*i;
    printf("%lld",((n%i)-(n%(i/10)))/(i/10));
}
return 0;
}
4

2 回答 2

2

试试这个

int main(int argc, char** argv) {
   long long n;

   scanf("%lld",&n);
   printf("%lld",n%10);

   while (n /= 10) {
       printf("%lld",n%10);
   }
   return 0;
}
于 2013-07-16T16:54:12.417 回答
2

如 Iosif 所示,有一个更简洁的版本。但是,如果您对它为什么不起作用感兴趣,我认为这是i因为您也需要声明long long

于 2013-07-16T16:56:42.370 回答