我尝试反向编写数字,实际上我发现了一种不用字符串转换它们的方法,但我的代码仅适用于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;
}
答案 0 :(得分: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;
}
答案 1 :(得分:2)
有一个更整洁的版本,如Iosif所示。但是,如果您对为什么不感兴趣,我认为这是因为您需要将i
声明为long long
。< / p>