c/c++感受算法乐趣(2)

开始时间2023-04-15 22:26:49

结束时间2023-04-16 00:18:16

前言:首先我们来回忆一下昨天接触了些什么算法题,1.1百钱百鸡问题,1.2借书方案知多少,1.3打鱼还是晒网,这三个题中有一个统一的思想就是枚举模拟,根据达成某种条件便解决了这类问题。这种暴力解决的方法很常见,也是问题通用的方法之一。bdw,说来惭愧今年的蓝桥杯我全是暴力做的,属实是送钱了。话不多说,咱们进入今天的趣味算法题。

第一章 趣味算法入门

第四题 抓交通肇事犯

 一.问题描述

 二.设计思路

  很明显无输入,求一个四位数,前两位相同(a=b),后两位相同(c=d),前两位与后两位不相同(a!=c),而且是一个平方数。可以用枚举模拟,i的范围在1~9,j的范围在0~9,并且i!=j,k=1100倍的i+11倍的j,然后判断k是不是一个平方数,如果是便输出车号。

 三.流程图

 四.源代码

#include<stdio.h>
int main()
{
    int i,j,k,s;
    for(i=1;i<=9;i++)
    {
        for(j=0;j<=9;j++)
        {
            k=1100*i+11*j;
            for(s=32;s<100;s++)
            {
                if(k==(s*s))
                {
                    printf("%d%d%d%d",i,i,j,j);
                }
            }
        }
    }
    return 0;
}

 

 五.运行结果

 第五题 兔子产子问题

一.问题描述

二.设计思路

  这是一个经典的迭代循环问题,第一次做我还错以为是枚举模拟。1,1,2,3,5,8,13等等的斐波那契数列,由前两个数可以推出第三个数。这题无输出,最后输出斐波那契数列第三十个数;

三.流程图

四.源代码

#include<stdio.h>
int main()
{
    long a=1,b=1,temp;
    int i;
    printf("%d\t%d\t",a,b);
    for(i=0;i<28;i++)
    {
        temp=a+b;
        b=a;
        a=temp;
        printf("%ld\t",temp);
    }
    return 0;
}

 

五.运行结果

 第六题 牛顿迭代法求方程根

一.问题描述

 二.设计思路

  这也是很经典的一道题目,迭代的本质是越来越接近方程的根,会用到math函数要加上math.h文件头。

   这个题在实验四函数程序设计中出现过,到时候咱们再细讲。

三.流程图

 四.源代码

#include <stdio.h>
#include <math.h>
double f(double a,double b,double c,double d,double x)/*功能为运用牛顿迭代法求给定方程在x附近的一个实根*/
{
    double x0,f,f1;
    do
    {
        x0=x;
        f=((a*x0+b)*x0+c)*x0+d;
        f1=(3*x0*a+2*b)*x0+c;
        x=x0-f/f1;
    }while(fabs(x-x0)>=1e-3);
    return(x);
}
int main(){
    double a,b,c,d,x;
    scanf("%lf%lf%lf%lf%lf",&a,&b,&c,&d,&x);
    printf("%lf\n",f(a,b,c,d,x));
    return 0;
}

 

五.运行结果

 第七题 最佳存款问题

一.问题描述

 二.设计思路

  本题无输入 ,从第五年初开始计算,进行四次循环,每次循环在上一次的基础上加上一千元并且除以利率;

三.流程图

 四.源代码

#include<stdio.h>
int main()
{
    int i=0;
    double sum=0;
    for(i=0;i<5;i++)
    {
        sum=(sum+1000.0)/(1+0.0063*12);
    }
    printf("%.2f",sum);
    return 0;
}

 

五.运行结果

 每日一mo:堂堂全国唯一一所以铁道命名大学的学生五一回家竟然还要抢票,它真的,我哭死......