要知道什么是‘递归’.|

2c237c6

园龄:1年4个月粉丝:2关注:0

代码问题分析

我的代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
    long long int m;
    cin >> m;
    string str=to_string(m);
    int n = sizeof(str)-1;
    for(int i=1;i<=n;i++){
        string r= str.substr(0, i);
        string t= str.substr(i,n);
        int l= (int)r+(int)t;
        cout<<l
    }
    return 0;
}
 

实际上应该这样经过仔细检查,发现了几个问题:

1. 在使用 `sizeof()` 获取字符串长度时,应该使用 `str.size()` 或者 `str.length()`。因为 `sizeof()` 返回的是对象在内存中的大小(字节数),而不是字符串的实际长度。

2. 在计算拆分后的两个部分的和时,不能将两个字符串直接相加。需要使用 `stoi()` 函数将字符串转换为整数,然后再进行相加。

3. 在输出结果时,缺少了分号,导致代码无法通过编译。

综上所述,修正后的代码如下:

#include <iostream>
#include <string>
using namespace std;

int main() {
    long long int m;
    cin >> m;
    string str = to_string(m);
    int n = str.size();

    for (int i = 1; i < n; i++) {
        string r = str.substr(0, i);
        string t = str.substr(i, n-i);
        int l = stoi(r) + stoi(t);
        cout << l << endl;
    }

    return 0;
}

这样修改后的代码就能够正确地拆分输入的数字,并输出拆分后部分的和了。

还有:

#include <bits/stdc++.h>
using namespace std;

int main() {
    long long int m;
    int num=0;
    cin >> m;
    string str = to_string(m);
    int n = str.size()-1;

    for (int i = 0; i < n; i++) {
            int k= str[i]-str[n];
            if(k%2==0){
                num++;
           }
    }
    cout << num << endl;
    return 0;
}

 

#include<bits/stdc++.h>

using namespace std; 
int main()
 { 
string a; 
cin>>a; 
int ans=0; 
for(int i=0;i<a.size()-1;i++)
{ 
int k=a[i]-a[a.size()-1];
 if(k%2==0) ans++;
 } 
cout<<ans<<endl;
 return 0;
 }

俩代码执行不同

改后:

#include <bits/stdc++.h>
using namespace std;

int main() {
    string m;
    int num=0;
    cin >> m;
    int n = m.size()-1;

    for (int i = 0; i < n; i++) {
            int k= m[i]-m[n];
            if(k%2==0){
                num++;
           }
    }
    cout << num << endl;
    return 0;
}

本文作者:2c237c6

本文链接:https://www.cnblogs.com/27dCnc/p/18568705

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   2c237c6  阅读(2)  评论(0编辑  收藏  举报  
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起