#include <stdio.h> #include <math.h> #include <vector> using namespace std; int main() { int i; int x,y,z; char *p; double w=2; int temp; char ch; vector<int> vec1(1000); vector<unsigned int> vec2(1000); vector<int> vec3(1000); //vector<int> vec4(0); scanf("%d",&i); for(x=0;x<i;x++) {scanf("%d",&temp); vec1[x]=temp;} for(x=0;x<i;x++) { for(y=1;y<32;y++) { if((pow(w,y)-1)*2>=vec1[x] && (pow(w,y-1)-1)*2<=vec1[x]) break; } vec2[x]=y; } for(x=0;x<i;x++) { vec3[x]=vec1[x]-2*(pow(w,y-1)-1)-1; } for(x=0;x<i;x++) { p = (char*)malloc(sizeof(char)*vec2[x]); memset(p,0,vec2[x]); //printf("%s\n",p); for(y=0;y<vec2[x];y++) { if(vec3[x]&0x1==1) p[y]=7+‘0‘; else p[y]=4+‘0‘; //printf("%s\n",p); vec3[x] = vec3[x]>>1; } for(y=0,z=vec2[x]-1;y<vec2[x]/2;y++,z--) { ch = p[y]; p[y]= p[z]; p[z]=ch; } printf("%s\n",p); } }
时间: 2024-12-27 12:57:42