首页 > 代码库 > 华为机试(3)

华为机试(3)

简单题  
题目描述  
输入一个数字,将其倒序输出,并输出其各个位上的乘积  
输入描述  : 一个正整数,保证在int范围内  
输出描述  : 两个数字,用空格隔开,第一个数字为其倒序的值,第二个数字是各个位上的乘积 
输入样例  :134  
输出样例  :431 12  
解题思路:删繁就简,直接当字符串读入,处理就简单多了。 
PS:此处不用纠结于题意,没有特别强调是按照一个数的格式输出,因此可以有前导0 

 

void main(){   int d;   cin>>d;   ostringstream os;   os<<d;   string s = os.str();   int len = s.size();   int res=1;   int i;   for(i=len-1;i>=0;i--)   {     cout<<s[i];     res *= (s[i]-0);      }   cout<<‘ ’<<res<<endl;   }


你也可以认为直接输入的的是string型的数而不是int型的数,这样就可以省略从int转换成string的代码,而且如果开头是0的话,也不会省略,考试时看题目要求。