这个方法效率很低啊,还不如递归呢,应该有更放便的方法吧!
#include <iostream>
using namespace std;
//判断位数
int bits(int n);
//逆序输出
void rnr(int n);
int main() {
rnr(5634); //入口
return 0;
}
int bits(int n) {
int a = 0;
while(true) {
if((n = n / 10) >= 1) {
a++;
} else {
// cout<<a+1<<endl;
return a+1;
}
}
}
void rnr(int n) {
int length = bits(n);
int a[] = {0,0,0,0,0}; //下标4
for(int j = length; j >= 1 ; j--) {
a[j] = (n - (a[2] * 100 + a[3] * 10 + a[4]));
//cout<<a[j]<<endl;
switch(j) {
case 4:
a[j] = (a[j] / 1) % 10;
break;
case 3:
a[j] = (a[j] / 10) % 10;
break;
case 2:
a[j] = (a[j] / 100) % 10;
break;
case 1:
a[j] = (a[j] / 1000) % 10;
break;
}
}
// cout<<a[4]<<a[3]<<a[2]<<a[1];
for(int k = length; k >= 1; k--){
cout<<a[k];
}
}