首页 > 其他分享 >打鱼还是晒网和抓交通肇事犯

打鱼还是晒网和抓交通肇事犯

时间:2023-04-11 12:33:26浏览次数:46  
标签:交通肇事 return 晒网 打鱼 int 天数 31 today cout

打鱼还是晒网:

中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问找个人在以后的某一天中是“打鱼”还是“晒网”。

解题思路:根据输入的日期来计算1990.1.1到输入日期的天数(考虑闰年366天),然后用天数取余5,倘若得到1,2,3则为打鱼,结果为4,0则为晒网。

代码:

#include<iostream>

using namespace std;

int monthday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};\\记录每个月的总天数

class date

{

    public:

    int year;

    int month;

    int day;

};

int runyear(int year)\\判断是否是闰年

{

    if((year%4==0&&year%100!=0)||(year%400==0))

        return 1;

    else

        return 0;

}

int countday(date today)\\计算总天数

{

    int n;

    int i;

    for(i=1990;i<today.year;i++)

    {

        if(runyear(i))

            n+=366;

        else

            n+=365;

    }

    if(runyear(today.year))

        monthday[2]++;

    for(i=1;i<today.month;i++)

        n+=monthday[i];

    n+=today.day;

    return n;\\返回总天数

}

int main()

{

    date today;

    int dayn;

    cout<<"please input 指定日期 包括年,月,日 如:1999 1 31"<<endl;

    cin>>today.year>>today.month>>today.day;\\输入当前日期

    dayn=countday(today);\\总天数

    int x=dayn%5;

    if(x==0||x==4)\\判断条件

        cout<<"今天晒网"<<endl;

    else

        cout<<"今天打鱼"<<endl;

    return 0;

}

该题体会:实际问题要根据实际情况讨论,学会了如何计算闰年以及计算天数的方法。

 

 

抓交通肇事犯

一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记了车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:拍照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。

根据题意列出数学表达式:

解题思路:两次循环嵌套,i表示前两位数,j表示后两位数,i不等于j,根据所得的i与j求出四位数,判断是否是一个整数的平方,符合则输出。

代码:

#include<iostream>

using namespace std;

int main()

{

    int i,j;

    for(i=1;i<10;i++)\\列举前两个数字的可能

    {

        for(j=0;j<10;j++)\\列举后两个数字的可能

        {

            if(i!=j)\\判断前两个数字和后两个数字是否不同

            {

                int temp=i*1000+i*100+j*10+j;

                for(int n=31;n<100;n++)\\列举判断是否是整数的平方

                {

                    if(n*n==temp)

                    cout<<temp<<endl;

                }

            }

        }

    }

    return 0;

}

拓展:

该车车牌只有一种可能,那么当找到车牌号是多少时,就不需要继续循环了。

代码:

#include<iostream>

using namespace std;

int main()

{

    int i,j,flag=0;

    for(i=1;i<10;i++)

    {

        if(flag)\\退出i的循环

            break;

        for(j=0;j<10;j++)

        {

            if(flag)\\退出j的循环

            break;

            if(i!=j)

            {

                int temp=i*1000+i*100+j*10+j;

                for(int n=31;n<100;n++)

                {

                    if(n*n==temp)

                    {

                     flag=1;\\寻找到车牌号,退出循环

                     cout<<temp<<endl;

                    }

                }

            }

        }

    }

    return 0;

}

 

标签:交通肇事,return,晒网,打鱼,int,天数,31,today,cout
From: https://www.cnblogs.com/zljzy/p/17305839.html

相关文章

  • python入门学习笔记001--趣学Python算法--第一例抓交通肇事犯
    本人是python小白初学者,过年期间实在闲的无聊,偶尔翻到《趣学Python算法100例》这本书,浅浅阅读后感觉写的很不错。本系列案例均取自该书,只分享题目和自己的编的代码,问题分析......
  • 三天打鱼两天晒网
    #include<stdio.h>#include<stdlib.h>voidmain(){ inta,b,c,d; printf("输入年份:\n"); scanf("%d",&a); getchar(); printf("输入月份:\n"); scanf("%d",&b); getcha......