1019 數字黑洞 (20 分)
阿新 • • 發佈:2018-12-27
題目連結: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 stringint_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 }