水题,LA我居然没找到在那里。
1 #include <cstdio> 2 #include <cstring> 3 #include <string> 4 #include <cmath> 5 #include <ctime> 6 #include <cstdlib> 7 #include <iostream> 8 using namespace std; 9 #define LL long long 10 LL dp[50],bin[50]; 11 int que[31],s; 12 void judge(int x) 13 { 14 s = 0; 15 while(x) 16 { 17 que[s++] = x%10; 18 x /= 10; 19 } 20 } 21 int main() 22 { 23 int i; 24 LL temp,n,x; 25 temp = 1; 26 bin[0] = 1; 27 for(i = 1;i <= 10;i ++) 28 bin[i] = 10*bin[i-1]; 29 for(i = 1;i <= 20;i ++) 30 { 31 if(i%2 == 1) 32 { 33 dp[i] = temp*9; 34 temp *= 10; 35 } 36 else 37 { 38 dp[i] = dp[i-1]; 39 } 40 } 41 while(cin>>n&&n) 42 { 43 for(i = 1;i <= 20;i ++) 44 { 45 if(n > dp[i]) 46 n -= dp[i]; 47 else 48 { 49 if(i == 1) 50 cout<<n<<endl; 51 else if(i == 2) 52 cout<<n<<n<<endl; 53 else if(i%2 == 1) 54 { 55 x = bin[i/2] + n - 1; 56 cout<<x; 57 judge(x); 58 for(i = 1;i < s;i ++) 59 cout<<que[i]; 60 cout<<endl; 61 } 62 else 63 { 64 x = bin[i/2-1] + n - 1; 65 cout<<x; 66 judge(x); 67 for(i = 0;i < s;i ++) 68 cout<<que[i]; 69 cout<<endl; 70 } 71 break; 72 } 73 } 74 } 75 return 0; 76 }