反序相等
题目描述
设N是一个四位数,它的9倍恰好是其反序数(例如:1234 的反序数是4321),求N的值。
题目链接
https://www.nowcoder.com/practice/092e7068881549bd8985c379208ef3c2?tpId=40&tqId=31028&tPage=14&rp=14&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking
代码
#include <bits/stdc++.h>
using namespace std;
int ReOrder(int n)
{ int ans = 0;
while(n!=0)
{
ans = ans*10+(n%10);
n = n/10;
}
return ans;
}
int main()
{
for(int i=1001;i<=1111;i++)
{
int nine = i*9;
int re = ReOrder(nine);
if(re == i)
{
cout<<i<<endl;
break;
}
}
return 0;
}
思考
首先要想到原数是一个四位数,在这个反序相等中,原数的9倍一定也是4位数。那么就可以把范围圈定在1000-1111,这111个数字中。这里的反序方法依旧使用的是ProblemC中的方法,感觉这个方法很好呀。比我之前一直用pow()方便多了。