对数字的各位进行分离,采用取余数等数学方法是比较耗时的,再此采用map
的映射功能,实现数字分离。
代码:
- #include <iostream>
- #include <map>
- #include <string>
- using namespace std;
- int main(int argc,char *argv[])
- {
- map<char,int> m;
- m['0'] = 0;
- m['1'] = 1;
- m['2'] = 2;
- m['3'] = 3;
- m['4'] = 4;
- m['5'] = 5;
- m['6'] = 6;
- m['7'] = 7;
- m['8'] = 8;
- m['9'] = 9;
- /*****the above it equal to ******/
- /*
- for(int j= 0; j<10; j++)
- {
- m['0'+j]=j; //关键之处;
- }
- */
- string sa,sb;
- sa = "6234";
- int i;
- int sum=0;
- for(i=0;i<sa.length();i++)
- {
- sum+=m[sa[i]];//m['6']=6 others are also like this !;
- }
- cout<<"sum="<<sum<<endl;
- return 0;
- }
输出:sum=15