算法修炼之练气篇——练气十层

博主:命运之光

专栏:算法修炼之练气篇

前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的,练完这200多道题就考了今年第十四届的B组蓝桥杯C/C++获得了省一,后面还会更新“算法修炼之筑基篇”里面包括了省赛到国赛这一个月训练的刷奖计划,大概有40道左右,感兴趣的话可以关注一下命运之光)

目录

题目 1060: 二级C语言-同因查找

题目描述

输入格式

输出格式

样例输入

样例输出

题目 1126: C语言训练-字符串正反连接

题目描述

输入格式

输出格式

样例输入

样例输出

题目 1132: C语言训练-最大数问题

题目描述

输入格式

输出格式

样例输入

样例输出

题目 1129: C语言训练-排序问题<2>

题目描述

输入格式

输出格式

样例输入

样例输出

题目 1128: C语言训练-排序问题<1>

题目描述

输入格式

输出格式

样例输入

样例输出

🍓🍓今日份修炼结束,再接再厉!!!


题目 1060: 二级C语言-同因查找

题目描述

求出10至1000之内能同时被2、3、7整除的数,并输出。

每行一个。

输入格式

输出格式

样例输入

样例输出

🍓解题思路:内涵五种方法,总有一种适合你

编写题解 1060: 二级C语言-同因查找
题目描述:
求出10至1000之内能同时被2、3、7整除的数,并输出。
关键代码:(能同时被2、3、7整除的数)

if(i%2==0&&i%3==0&&i%7==0)//进行取余操作%
{
    printf("%d\n",i);//输出满足条件的值
}

本题分别通过for循环;while循环;do while循环;goto语句;暴力破解等方法解决此问题,总有一种适合你。

方法一:for循环

#include<stdio.h>
int main()
{
    for(int i=10;i<=1000;i++)
    {
        if(i%2==0&&i%3==0&&i%7==0)//进行取余操作%
        {
            printf("%d\n",i);//输出满足条件的值
        }
    }
    return 0;
}

方法二:while循环

#include<stdio.h>
int main()
{
    int i=10;
    while(i>=10&&i<=1000)
    {
        if(i%2==0&&i%3==0&&i%7==0)//进行取余操作%
        {
            printf("%d\n",i);//输出满足条件的值
        }
        i++;//实现10~1000递增
    }
    return 0;
}

方法三:do while循环

#include<stdio.h>
int main()
{
    int i=10;
    do
    {
        if(i%2==0&&i%3==0&&i%7==0)//进行取余操作%
        {
            printf("%d\n",i);//输出满足条件的值
        }
        i++;//实现10~1000递增
    }while(i>=10&&i<=1000);
    return 0;
}

方法四:goto语句

#include<stdio.h>
int main()
{
    int i=10;
flag:
    if(i%2==0&&i%3==0&&i%7==0)//进行取余操作%
    {
        printf("%d\n",i);//输出满足条件的值
    }
    i++;//实现10~1000递增
    if(i==1000)
    {
        return 0;
    }
    goto flag;//返回flag继续循环
}

方法五:暴力破解输出

#include<stdio.h>
int main()
{
    printf("42\n");
    printf("84\n");
    printf("126\n");
    printf("168\n");
    printf("210\n");
    printf("252\n");
    printf("294\n");
    printf("336\n");
    printf("378\n");
    printf("420\n");
    printf("462\n");
    printf("504\n");
    printf("546\n");
    printf("588\n");
    printf("630\n");
    printf("672\n");
    printf("714\n");
    printf("756\n");
    printf("798\n");
    printf("840\n");
    printf("882\n");
    printf("924\n");
    printf("966\n");
    return 0;
}

题目 1126: C语言训练-字符串正反连接

题目描述

所给字符串正序和反序连接,形成新串并输出

输入格式

任意字符串(长度<=50)

输出格式

字符串正序和反序连接所成的新字符串

样例输入

123abc

样例输出

123abccba321

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s1,s2;
    cin>>s1;
    s2=s1;
    reverse(s1.begin(),s1.end());/*STL——翻转字符串reserve(s1.begain(),s1.end());就是如此简单!!*/
    cout<<s2+s1;
    return 0;
}

题目 1132: C语言训练-最大数问题

题目描述

输入若干个整数,以-1标记输入结束。输出其中的最大数

输入格式

若干个整数。(以-1标记输入结束)

输出格式

其中的最大数

样例输入

1 2 5 7 8 6 1 -6 -1

样例输出

8

#include <bits/stdc++.h>
using namespace std;
int a[10005];
int main()
{
    int i=0,n=0;
    while(cin>>a[i])
    {
        if(a[i]==-1)
        {
            break;
        }
        i++;
        n++;
    }
    printf("%d",*max_element(a,a+n));
    return 0;
}

题目 1129: C语言训练-排序问题<2>

题目描述

将十个数进行从大到小的顺序进行排列

输入格式

十个整数

输出格式

以从大到小的顺序输出这个十个数

样例输入

1 2 3 4 5 6 7 8 9 10

样例输出

10 9 8 7 6 5 4 3 2 1

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a[10];
    for(int i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    sort(a,a+10,greater<int>());
    for(int i=0;i<10;i++)
    {
        printf("%d ",a[i]);
     }
    return 0;
}

题目 1128: C语言训练-排序问题<1>

题目描述

将四个整数进行从小到大的顺序排列,

输入格式

四个整数

输出格式

从小到大输出这四个数

样例输入

5 3 4 2

样例输出

2 3 4 5

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a[4];
    for(int i=0;i<4;i++)
    {
        scanf("%d",&a[i]);
    }
    sort(a,a+4);
    for(int i=0;i<4;i++)
    {
        printf("%d ",a[i]);
     }
    return 0;
}

🍓🍓今日份修炼结束,再接再厉!!!

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
朴素贝叶斯算法是一种常用的分类算法,它将待分类的样本看作是由多个特征组成的向量,然后根据这些特征的先验概率和条件概率,计算出每个类别的后验概率,最终将样本分到概率最大的那个类别中。 在天气预报中,我们可以使用朴素贝叶斯算法来预测明天是否会下雨。假设我们有以下三个特征:今天是否下雨、今天是否多云、今天的气温,它们的取值分别为是或否、是或否、高、中、低。我们可以根据这些特征来构建训练数据集,例如: | 是否下雨 | 是否多云 | 气温 | 是否下雨(标签) | | -------- | -------- | ---- | ---------------- | | 是 | 是 | 高 | 是 | | 否 | 是 | 中 | 否 | | 否 | 否 | 低 | 否 | | 否 | 是 | 低 | 否 | | 是 | 否 | 中 | 是 | | 是 | 是 | 中 | 是 | 现在我们要预测明天是否会下雨,假设明天的气温为“中”,天气情况为“多云”,我们可以使用朴素贝叶斯算法来计算下雨和不下雨的后验概率。 首先,我们需要计算每个类别(下雨和不下雨)出现的先验概率,即: $$P(下雨)=\frac{3}{6}=0.5$$ $$P(不下雨)=\frac{3}{6}=0.5$$ 然后,我们需要计算每个特征在每个类别下的条件概率。以“是否多云”为例,当天不下雨的样本中,“是否多云”为“是”的概率为: $$P(是否多云=是|不下雨)=\frac{1}{3}=0.33$$ 同理,当天不下雨的样本中,“是否多云”为“否”的概率为: $$P(是否多云=否|不下雨)=\frac{2}{3}=0.67$$ 当天下雨的样本中,“是否多云”为“是”的概率为: $$P(是否多云=是|下雨)=\frac{2}{3}=0.67$$ 同理,当天下雨的样本中,“是否多云”为“否”的概率为: $$P(是否多云=否|下雨)=\frac{1}{3}=0.33$$ 其他特征的条件概率也可以用同样的方法计算。最后,我们可以根据贝叶斯公式计算下雨和不下雨的后验概率: $$P(下雨|气温=中,是否多云=是)=\frac{P(气温=中|下雨)P(是否多云=是|下雨)P(下雨)}{P(气温=中)P(是否多云=是)}$$ $$P(不下雨|气温=中,是否多云=是)=\frac{P(气温=中|不下雨)P(是否多云=是|不下雨)P(不下雨)}{P(气温=中)P(是否多云=是)}$$ 其中,$P(气温=中)$和$P(是否多云=是)$可以通过所有样本中对应特征的出现次数计算得到。 最后,比较两个后验概率的大小,即可得出明天是否会下雨的预测结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

命运之光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值