寒假每日一题(入门组)【week7 完结】

本文涵盖了多种算法题目,包括字符串数字求和并转换为单词表示、Z字形扫描矩阵、图像区域填充、数组的最大波动计算、折点计数及跳跃游戏的解决方案。这些题目涉及字符串操作、数组遍历、逻辑判断等核心编程技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1477. 拼写正确

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
string s,a;
int sum=0;
string c[10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
int main(void)
{
    cin>>s;
    for(int i=0;i<s.size();i++) sum+=s[i]-'0';
    a=to_string(sum);
    for(int i=0;i<a.size();i++) cout<<c[a[i]-'0']<<" ";
    return 0;
}

3208. Z字形扫描

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int a[N][N],n;
vector<int>ve;
int main(void)
{
    cin>>n;
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
                cin>>a[i][j];
    int k=1;
    for(int i=0;i<n;i++)
    {
        if(k&1)
            for(int x=i,y=0;y<=i;x--,y++) ve.push_back(a[x][y]);
        else
            for(int x=0,y=i;x<=i;x++,y--) ve.push_back(a[x][y]);
        k++;
    }
    for(int i=1;i<n;i++)
    {
        if(k&1)
            for(int x=n-1,y=i;y<n;x--,y++) ve.push_back(a[x][y]);
        else
            for(int x=i,y=n-1;x<n;x++,y--) ve.push_back(a[x][y]);
        k++;
    }
    for(int i=0;i<ve.size();i++) cout<<ve[i]<<" ";
}

3203. 画图

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int a[N][N],n,cnt;
int main(void)
{
    cin>>n;
    while(n--)
    {
        int x,y,xx,yy; cin>>x>>y>>xx>>yy;
        for(int i=x;i<xx;i++)
        {
            for(int j=y;j<yy;j++)
            {
                a[i][j]++;
                if(a[i][j]==1)cnt++;
            }
        }
    }
    cout<<cnt;
    return 0;
}

3232. 最大波动

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],n,ans;
int main(void)
{
    cin>>n;
    for(int i=0;i<n;i++) cin>>a[i];
    for(int i=0;i<n-1;i++) ans=max(ans,abs(a[i]-a[i+1]));
    cout<<ans;
    return 0;
}

3227. 折点计数

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int a[N],n;
int main(void)
{
    cin>>n;
    for(int i=0;i<n;i++) cin>>a[i];
    int cnt=0;
    for(int i=0;i<n;i++)
    {
        if(i-1>=0&&i+1<n&&( (a[i]>a[i-1]&&a[i]>a[i+1]) || (a[i]<a[i-1]&&a[i]<a[i+1]))) 
            cnt++;
    }
    cout<<cnt;
    return 0;
}

3257. 跳一跳

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N];
int main(void)
{
    int n=0;
    while(cin>>a[n]) n++;
    int cnt=0,temp=2;
    for(int i=0;i<n-1;i++)
    {
        if(a[i]==1) cnt++,temp=0;
        else
        {
            if(!i||(a[i]>a[i-1])) cnt+=2,temp=2;
            else
            {
                temp+=2;
                cnt+=temp;
            }
        }
    }
    cout<<cnt;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值