有一类题目很常见,要求输入一个正整数,以相反顺序输出这个整数。
好的,注意看,下面我要开始介绍一种极其稀有的做法!!!
我决定将它命名为大动干戈之数字反转算法!
前无古人,后无来者。
#include<iostream>
using namespace std;
int POW(int a, int b) {
int sum = 1;
while (b) {
sum *= a;
b--;
}
return sum;
}
int Reverse(int n) {
int cnt = 0;
int temp = 0;
int output = 0;
int s = n;
while (s / 10 >= 1) {
cnt++;
s /= 10;
}
for (int i = 0; i <= cnt; i++) {
temp = n / POW(10, cnt - i);
output = output + (temp % 10) * POW(10, i);
}
return output;
}
int main()
{
int n;
cin >> n;
cout << Reverse(n) << endl;
return 0;
}
这个算法是如此地……
以至于,我几个月后再看,那个Reverse()我一行也看不懂。
你们说这世界上还能有第二个人想得到吗?
我觉得没有。
=============================== 一般青年做法 =================================
int reverse(int a) {
int s = 0;
while (a) {
s = s * 10 + a % 10;
a /= 10;
}
return s;
}