首页 > 编程语言 >经典算法问题之打印日期

经典算法问题之打印日期

时间:2024-01-05 22:22:27浏览次数:48  
标签:打印 int 31 30 year 算法 循环 经典

这也是一道经典的算法题。

其实也是用两个数组。还有判断是否闰年。

两个个循环,外面一个是月份循环,内部一个是每个月的天数循环,然后计数器Count++就行,直到和天数相同就跳出循环,打印就行。

#include <stdio.h>
int judge ( int year ) {
    if (year % 400 == 0 || year % 100 != 0 && year % 4 == 0 ) {
        return 1 ;
    }
    return 0 ;
}
int main ( ) {
    int year , days ;
    int A[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int B[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    while( scanf("%d %d",&year,&days) != EOF ) {
        int i = 1 , tem = 0 ;
        int count = 0 ;
        if( judge(year) == 1 ) {
            for ( ; i <= 12 ; i++ ) {
                for( int j = 1 ; j <= B[i] ; j++ ) {
                    count++;
                    if( count == days ) {
                        tem = j ;
                        break ;
                    }
                }
                if( count == days ) {
                    break ;
                }
            }
        }else{
            for ( ; i <= 12 ; i++ ) {
                for( int j = 1 ; j <= A[i] ; j++ ) {
                    count++;
                    if( count == days ) {
                        tem = j ;
                        break ;
                    }
                }
                if( count == days ) {
                    break ;
                }
            }
        }
        if( i < 10 ) {
            if ( tem < 10 ) {
                printf( "%d-0%d-0%d\n",year,i,tem ) ;
            }else {
                printf( "%d-0%d-%d\n",year,i,tem ) ;
            }
        }else{
            if ( tem < 10 ) {
                printf( "%d-%d-0%d\n",year,i,tem ) ;
            }else {
                printf( "%d-%d-%d\n",year,i,tem ) ;
            }
        }
    }
    return 0 ;
}

结果如下:

标签:打印,int,31,30,year,算法,循环,经典
From: https://www.cnblogs.com/llllmz/p/17948219

相关文章

  • 机器学习-决策树系列-Adaboost算法-集成学习-29
    目录1.adaboost算法的基本思想2.具体实现1.adaboost算法的基本思想集成学习是将多个弱模型集成在一起变成一个强模型提高模型的准确率,一般有如下两种:bagging:不同的basemodel可以并行计算,输出预测结果少数服从多数,回归问题则对多个模型输出的结果求平均。boosting:后一......
  • 代码随想录算法训练营第二十四天 | 回溯算法理论基础,77. 组合
    一、回溯算法理论基础学习:1.基本概念回溯法是一种搜索方式回溯的本质是穷举,是递归的副产品,即回溯算法就是递归算法回溯解决的问题都能理解成树形结构,一般是在集合中递归查找子集。集合的大小构成树的宽度(n叉树),递归的深度构成了树的深度2.回溯解决的问题(1)组合问题:N个......
  • 经典算法之天数问题
    这题算是非常经典的题目了。无非就是判断闰年然后计算天数而已。用两个month数组记录月份天数一三五七八十腊是31天,二月份非闰年28天,闰年29天,其余都是30天就好了。#include<stdio.h>intjudge(intyear){if(year%400==0||year%100!=0&&year%4==0......
  • C语言逆波兰式算法
    1#include<stdio.h>23//数字模式识别4#defineIS_NUM(c)(((c)>='0')&&((c)<='9')||((c)=='.'))5//符号字符识别6#defineIS_OPERATOR(c)(((c)=='+')||((c)=='-')||((c)==&......
  • 2024年小红书最新x-s-common签名算法分析以及点赞api接口测试nodejs(2024-01-05)
      2024年小红书又更新了x-s-common算法,现在的版本是:3.6.8。这个签名算法现在是越来越重要了,许多接口都要用到。比如:评论,点赞等接口,没有这个算法采集不到数据。  一、chrome逆向x-s-common算法  1、x-s-common  打开chrome,按f12,打开开发者模式,随便找一接口,全局......
  • 经典算法之图形问题
    图形问题的万金解决方法就是创建一个二维数组,然后将填数组,最后打印数组就行了。其本质还是找出图形的规律。首先来找规律,先从外形上来找。奇数高,看图形,是上下左右对称的。所以只找上半区的规律。然后首行比其他行少两个字符也就是多两个空格,最外层都是A,数组可以提前都赋值。只......
  • 云打印有什么优势?云打印的优点有哪些?
    伴随着互联网的发展,云打印技术也逐渐成熟。目前,云打印正受到广大用户的热烈追捧。那么云打印有什么优势?云打印的优点有哪些?今天小易就带大家来了解一下。 云打印有什么优势?云打印的优点有哪些?云打印是指有打印需求的用户通过互联网上传打印需求,云服务器接受打印需求后......
  • 深入理解经典红黑树 | 京东物流技术团队
    本篇我们讲红黑树的经典实现,Java中对红黑树的实现便采用的是经典红黑树。前一篇文章我们介绍过左倾红黑树,它相对来说比较简单,需要大家看完上篇再来看这一篇,因为旋转等基础知识不会再本篇文章中赘述。本篇的大部分内容参考《算法导论》和Java实现红黑树的源码,希望大家能够有耐心......
  • 排序算法
    冒泡排序思想:1、一个无序的数组,n个元素,一共需要排序n-1轮2、在每一轮中,从数组第0位开始,比较相邻两个元素,如果与需求逆序,就交换这两个元素,在每一轮中,可以将当前最大(最小)的元素交换到最后,3、直到执行完n-1轮,没有需要比较的元素为止。代码实现:publicstaticvoidbubSort(in......
  • 深入理解经典红黑树 | 京东物流技术团队
    本篇我们讲红黑树的经典实现,Java中对红黑树的实现便采用的是经典红黑树。前一篇文章我们介绍过左倾红黑树,它相对来说比较简单,需要大家看完上篇再来看这一篇,因为旋转等基础知识不会再本篇文章中赘述。本篇的大部分内容参考《算法导论》和Java实现红黑树的源码,希望大家能够有耐心......