今天遇见了一个题,感觉这个题很常见,所以就把它写下来,下次遇见感觉不太熟练的话,继续复习一下。
这个题比较简单,很容易做出来,但是这个题主要有一个关键点,那就是类型转化,主要是我按照自己的思路来写的方法会涉及到类型转化,用其他的方法肯定也会是不一样的。
我的代码如下:
#include<iostream> #include<cstdlib> using namespace std; int main() { string A,B; while(cin>>A>>B) { long a,b; int i,j,Q=0; for(i=0;i<A.length();i++) { a= int(A[i])-48; for(j=0;j<B.length();j++) { b = int(B[j])-48; Q =Q + a*b; } } cout<<Q<<endl; } return 0; }
对于这种永远都不知道输入的数据有多大,有多长的时候,我总是习惯性地用string类型,我觉得那种类型适合各种各样的数据。ok,言归正传。
将string里面的单个字符一一转化为int类型的时候,可以考虑利用ASCII码。
例如“5”=int(‘5’)-48;
这种方法适合你需要将其进行一一转化。
另外一种就是atoi()等一系列方法
● atof():将字符串转换为双精度浮点型值。
● atoi():将字符串转换为整型值。
● atol():将字符串转换为长整型值。
而这个方法的使用如下:
char a[] ="4563"; int b; b= atoi(a);
得出来的b=4563;
这边是第二种方法。
下次遇见了继续学习更新。