为什么不能输出
#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+nums==target)
cout<<i<<j<<endl;
return 0;
}
numsnums 都是字符类型的,两个字符类型加起来怎么可能会等于一个数字呢?
所以比之前要先把nums,nums都转成数字类型。
方法①:
通过stoi(nums),stoi(nums) 将字符转换为数字(但需要基于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)-48 + int(nums)-48 == target)
{
cout<<i<<j<<endl;
}
}
}
return 0;
} shuofxz 发表于 2019-5-22 20:21
numsnums 都是字符类型的,两个字符类型加起来怎么可能会等于一个数字呢?
所以比之前要先把nums,nu ...
哇,厉害厉害,谢谢啦
页:
[1]