• 洛谷刷题C语言:月份天数、找最小值、分类平均、一尺之棰、数字直角三角形


    记录洛谷刷题QAQ


    一、【深基3.例9】月份天数

    题目描述

    输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。

    输入格式

    输入两个正整数,分别表示年份 y y y 和月数 m m m,以空格隔开。

    输出格式

    输出一行一个正整数,表示这个月有多少天。

    样例 #1

    样例输入 #1

    1926 8
    
    • 1

    样例输出 #1

    31
    
    • 1

    样例 #2

    样例输入 #2

    2000 2
    
    • 1

    样例输出 #2

    29
    
    • 1

    提示

    数据保证 1582 ≤ y ≤ 2020 1582 \leq y \leq 2020 1582y2020 1 ≤ m ≤ 12 1 \leq m \leq 12 1m12

    代码如下

    #include
    #include
    #include
    #include 
    
    int main()
    {
    	int month1[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
    	int month2[13] =  {0,31,29,31,30,31,30,31,31,30,31,30,31};
    	
    	int y, m;
    	scanf("%d%d",&y,&m);
    	
    	if(y%4 == 0&&y % 100!= 0||y % 400 == 0)
    	{
    		printf("%d\n",month2[m]);
    	}
    	
    	else 
    	{
    		printf("%d\n",month1[m]);
    	}
    	return 0;	
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    二、【深基4.例2】找最小值

    题目描述

    给出 n n n n n n 个整数 a i a_i ai,求这 n n n 个整数中最小值是什么。

    输入格式

    第一行输入一个正整数 n n n,表示数字个数。

    第二行输入 n n n 个非负整数,表示 a 1 , a 2 … a n a_1,a_2 \dots a_n a1,a2an,以空格隔开。

    输出格式

    输出一个非负整数,表示这 n n n 个非负整数中的最小值。

    样例 #1

    样例输入 #1

    8
    1 9 2 6 0 8 1 7
    
    • 1
    • 2

    样例输出 #1

    0
    
    • 1

    提示

    数据保证, n ≤ 100 n\le100 n100 0 ≤ a i ≤ 1000 0\le a_i \le 1000 0ai1000

    代码如下

    #include
    #include
    #include
    #include 
    
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	
    	int min = 1000;
    	for(int i = 1;i <= n;i++)
    	{
    		int num;
    		scanf("%d",&num);
    		if(num < min)
    		{
    			min = num;
    		}
    	}
    	
    	printf("%d\n",min);
    	return 0;	
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    三、【深基4.例3】分类平均

    题目描述

    给定 n n n k k k,将从 1 到 n n n 之间的所有正整数可以分为两类:A 类数可以被 k k k 整除(也就是说是 k k k 的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后 1 1 1 位,用空格隔开。

    数据保证两类数的个数都不会是 0 0 0

    输入格式

    输入两个正整数 n n n k k k

    输出格式

    输出一行,两个实数,分别表示 A 类数与 B 类数的平均数。精确到小数点后一位。

    样例 #1

    样例输入 #1

    100 16
    
    • 1

    样例输出 #1

    56.0 50.1
    
    • 1

    提示

    数据保证, 1 ≤ n ≤ 10000 1 \leq n\leq 10000 1n10000 1 ≤ k ≤ 100 1 \leq k \leq 100 1k100

    代码如下

    #include
    #include
    #include
    #include 
    
    int main()
    {
    	int n, k;
    	scanf("%d%d",&n,&k);
    	
    	int x = 0,y = 0;
    	int sum = 0,num = 0;
    	for(int i = 1;i <= n;i++)
    	{
    		if(i % k == 0)
    		{
    			sum = sum + i;
    			x++;
    		}
    		if(i % k != 0)
    		{
    			num = num + i;
    			y++;
    		}
    	}
    	double a = 1.0*sum/x*1.0;
    	double b = 1.0*num/y*1.0;
    	printf("%.1lf %.1lf",a,b);
    	return 0;	
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    四、【深基4.例4】一尺之棰

    题目描述

    《庄子》中说到,“一尺之棰,日取其半,万世不竭”。第一天有一根长度为 a a a 的木棍,从第二天开始,每天都要将这根木棍锯掉一半(每次除 2 2 2,向下取整)。第几天的时候木棍的长度会变为 1 1 1

    输入格式

    输入一个正整数 a a a,表示木棍长度。

    输出格式

    输出一个正整数,表示要第几天的时候木棍长度会变为 1 1 1

    样例 #1

    样例输入 #1

    100
    
    • 1

    样例输出 #1

    7
    
    • 1

    提示

    数据保证, 1 ≤ a ≤ 1 0 9 1 \le a\le 10^9 1a109

    代码如下

    #include
    #include
    #include
    #include 
     
    int main()
    {
    	long long n;
    	scanf("%lld",&n);
    	
    	int sum = 1;
    	long long half = n;
    	while(half !=1)
    	{
    			half = half/2;
    			sum++;
    
    		
    	}
    	
    	printf("%d\n",sum);
    	return 0;	
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    五、【深基4.例6】数字直角三角形

    题目描述

    给出 n n n,请输出一个直角边长度是 n n n 的数字直角三角形。所有数字都是 2 2 2 位组成的,如果没有 2 2 2 位则加上前导 0 0 0

    输入格式

    输入一个正整数 n n n

    输出格式

    输出如题目要求的数字直角三角形。

    样例 #1

    样例输入 #1

    5
    
    • 1

    样例输出 #1

    0102030405
    06070809
    101112
    1314
    15
    
    • 1
    • 2
    • 3
    • 4
    • 5

    提示

    数据保证, 1 ≤ n ≤ 13 1\le n\le13 1n13

    代码如下

    #include
    #include
    #include
    #include 
     
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	int x = 1;
    	for(int i = n;i >= 0;i--)
    	{
    		for(int j = i-1;j >= 0;j--)
    		{
    			
    			if(x < 10)
    			{
    				printf("0%d",x);
    				x++;
    			}
    			else
    			{
    				printf("%d",x);
    				x++;
    			}
    		}
    		printf("\n");
    	}
    	return 0;	
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
  • 相关阅读:
    第二章 使用Maven:IDEA环境
    CPS-8910
    如何把几张图片左右拼在一起
    数据可视化之设计经验分享:轻松三步教你学会制作数据可视化大屏思路
    备忘录模式-撤销功能的实现
    CANoe-vTESTstudio之Classification Tree编辑器
    matlab常用函数
    常用的工程测量仪器详细介绍
    开发板连接WiFi时获取不到ip,且不断的报如下问题
    学习数据结构和算法的第8天
  • 原文地址:https://blog.csdn.net/weixin_62529383/article/details/126011163