|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<iostream>
#include<string>
using namespace std;
int main()
{
string nums;
int target;
int i,j;
cin>>nums;
cin>>target;
for(i=0;i<nums.size()-1;i++)
for(j=i;j<nums.size()-1;j++)
if(nums[i]+nums[j]==target)
cout<<i<<j<<endl;
return 0;
}
nums nums[j] 都是字符类型的,两个字符类型加起来怎么可能会等于一个数字呢?
所以比之前要先把nums,nums[j]都转成数字类型。
方法①:
通过stoi(nums),stoi(nums[j]) 将字符转换为数字(但需要基于c++ 11以上版本的编译器,否则会编译不通过)
方法②:
int(nums)-48
直接用int()转的话,会把字符对应的ascii码转换出来,比如1对应的ascii是49, 2对应的是50。因此把转换出的ascii码减去48就变成对应的数字了
- #include<iostream>
- #include<string>
- using namespace std;
- int main()
- {
- string nums;
- int target;
- int i,j;
- cin>>nums;
- cin>>target;
- for(i=0;i<nums.size()-1;i++)
- {
- for(j=i;j<nums.size()-1;j++)
- {
- if(int(nums[i])-48 + int(nums[j])-48 == target)
- {
- cout<<i<<j<<endl;
- }
- }
- }
- return 0;
- }
复制代码
|
|