1. 程式人生 > >1019 數字黑洞 (20 分)

1019 數字黑洞 (20 分)

題目連結:1019 數字黑洞 (20 分)

 

這道題目:沒有太難的地方,但是因為基礎不夠牢固,很多操作花的時間較長,甚至有些參考網上的方法。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 int string_to_int(string str)
 5 {
 6     int num;
 7     stringstream ss;
 8     ss<<str;
 9     ss>>num;
10     return num;
11 }
12 
13 string
int_to_string(int num) 14 { 15 string str; 16 stringstream ss; 17 ss<<num; 18 ss>>str; 19 return str; 20 } 21 22 int main() 23 { 24 string s; 25 cin>>s; 26 while(1) 27 { 28 for(;s.length()<4;) 29 s+='0'; 30 sort(s.begin(),s.begin()+s.length());
31 int a=string_to_int(s); 32 string s2=""; 33 for(int i=s.length()-1;i>=0;i--) 34 s2+=s[i]; 35 int b=string_to_int(s2); 36 string s3=int_to_string(b-a); 37 for(;s3.length()<4;) 38 s3.insert(0,"0"); 39 cout<<s2<<"
- "<<s<<" = "<<s3<<endl; 40 if(b-a==6174||b==a) 41 break; 42 int num=b-a; 43 s=int_to_string(num); 44 } 45 return 0; 46 }

 

 

以後總結一下各種不熟悉的操作

字串轉int

1 string int_to_string(int num)
2 {
3     string str;
4     stringstream ss;
5     ss<<num;
6     ss>>str;
7     return str;
8 }

int轉字串

1 int string_to_int(string str)
2 {
3     int num;
4     stringstream ss;
5     ss<<str;
6     ss>>num;
7     return num;
8 }