POJ1519

 水题一枚,不多说了

代码如下:

 

  
  
  
  
  1. #include<iostream> 
  2. #include<string> 
  3. #include<sstream> 
  4.  
  5. using namespace std; 
  6.  
  7. string ConvertToString(int num) { 
  8.        ostringstream o; 
  9.        if(o << num) 
  10.             return o.str(); 
  11.        return "Convert Error!"
  12.  
  13.  
  14. int GetSum(string s) { 
  15.  
  16.         int sum = 0; 
  17.         for(int i = 0; i < s.length(); i++)  
  18.                 sum += (s[i] - '0'); 
  19.         if(sum < 10) 
  20.                return sum; 
  21.         else  
  22.                return GetSum(ConvertToString(sum)); 
  23.     } 
  24.  
  25. int main() { 
  26.      
  27.     string s; 
  28.     while(cin >> s) { 
  29.               if(s[0] == '0'
  30.                       break
  31.               cout << GetSum(s) << endl; 
  32.               } 
  33.     system("pause"); 
  34.     return 0; 
  35.     } 

需要注意的几点:

1.题目思想是递归处理,注意递归最后的返回

2.需要用到string和数字之间的相互转换,具体可以参考以下链接

http://blog.csdn.net/cnnumen/article/details/5767933

http://blog.csdn.net/qq1987924/article/details/7671154

http://baike.baidu.com/view/1261354.htm

流的概念 安全性 可扩展 重载了运算符(这里是指某一个stream类的对象所调用的运算符成员函数被重载) 

 

 

 

 

 

 

你可能感兴趣的:(算法)