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 }

猜你喜欢

转载自www.cnblogs.com/ManOK/p/10186836.html