洛谷刷题C语言:数字游戏、面积、日期、苹果采购、字母转换

纪录洛谷刷题QAQ


一、[CSP-J2019] 数字游戏

题目描述

小 K 同学向小 P 同学发送了一个长度为 8 的 01 字符串来玩数字游戏,小 P 同学想要知道字符串中究竟有多少个 1。

注意:01 字符串为每一个字符是 0 或者 1 的字符串,如“101”(不含双引号)为一个长度为 3 的 01 字符串。

输入格式

输入文件只有一行,一个长度为 8 的 01 字符串 s。

输出格式

输出文件只有一行,包含一个整数,即 01 字符串中字符 1 的个数。

样例 #1

样例输入 #1

00010100

样例输出 #1

2

样例 #2

样例输入 #2

11111111

样例输出 #2

8

提示

【输入输出样例 1 说明】

该 01 字符串中有 2 个字符 1。

【输入输出样例 2 说明】

该 01 字符串中有 8 个字符 1。

【数据规模与约定】

对于 20% 的数据,保证输入的字符全部为 0。

对于 100% 的数据,输入只可能包含字符 0 和字符 1,字符串长度固定为 8。

代码如下

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>

int main()
{
	char num[9];
	scanf("%s",&num);
	
	int len = strlen(num);
	int sum = 0;
	for(int i = 0;i <= len;i++)
	{
		if(num[i] == '1')
		{
			sum++;
		}
	}
	
	printf("%d\n",sum);
	return 0;
}

二、[CSP-J2019 江西] 面积

题目描述

Alice 有一个边长为 a a a 的正方形,Bob 有一个长宽分别为 b , c b,c b,c 的矩形,请你告诉他们俩谁的图形面积更大。

输入格式

仅一行三个正整数 a , b , c a,b,c a,b,c

输出格式

输出仅一行一个字符串,若正方形面积大则输出 Alice,否则输出 Bob

样例 #1

样例输入 #1

5 4 6

样例输出 #1

Alice

样例 #2

样例输入 #2

7 5 10

样例输出 #2

Bob

提示

【数据范围】
对于 30 % 30\% 30% 的数据, 1 ≤ a , b , c ≤ 100 1 \le a,b,c \le 100 1a,b,c100 b = c b=c b=c
对于 80 % 80\% 80% 的数据, 1 ≤ a , b , c ≤ 1 0 4 1\le a,b,c \le 10^4 1a,b,c104
对于 100 % 100\% 100% 的数据, 1 ≤ a , b , c ≤ 1 0 9 1\le a,b,c \le 10^9 1a,b,c109

【样例 1 1 1 解释】
正方形面积为 25 25 25,矩形面积为 24 24 24

【样例 2 2 2 解释】
正方形面积为 49 49 49,矩形面积为 50 50 50

代码如下

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>

int main()
{
	long long a, b, c;
	scanf("%lld%lld%lld",&a,&b,&c);


	if(b*c >= a*a) 	printf("Bob\n");
	else if(a*a > b*c) 	printf("Alice\n");
	return 0;
}

三、[CSP-S2019 江西] 日期

题目背景

CSP-SJX2019 T1

题目描述

Alice在纸上写下了一个日期,形式为 MM-DD \text{MM-DD} MM-DD,其中 MM \text{MM} MM DD \text{DD} DD 都是两位数字,分别表示月和天,然而这个日期并不一定存在。 Alice找来了Bob要他更改若干位上的数字,使得这个日期存在。请你帮Bob算算他最少需要更改几位数字。

本题中我们认为 2 2 2 月固定为 28 28 28 天。

输入格式

仅一行一个五个字符的字符串,表示 MM-DD \text{MM-DD} MM-DD

输出格式

仅一行一个整数,表示答案。

样例 #1

样例输入 #1

03-32

样例输出 #1

1

样例 #2

样例输入 #2

02-39

样例输出 #2

1

样例 #3

样例输入 #3

67-89

样例输出 #3

2

提示

【输入输出样例1说明】

更改方式不止一种,其中一种方式是改为: 03-22 \text{03-22} 03-22

【输入输出样例2说明】

一种更改方式为: 02-09 \text{02-09} 02-09

【输入输出样例3说明】

一种更改方式为: 07-09 \text{07-09} 07-09

【数据规模与约定】
对于 100 % 100\% 100% 的数据: MM \text{MM} MM DD \text{DD} DD 一定为 4 4 4 个数字。

代码如下

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>

int ts[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//每月的天数
int main()
{
	int m,r,s=0;

	scanf("%d-%d",&m,&r);
	if(m>12)//月份需要改
	{
		if(m/10==1)//十位数是1
		{
			m=12;
		}else
		{
			if(m%10==2)//个位数是2
			{
				m=12;
			}else
			{
				m=(m-1)%10+1;//把十位数改成0,因为不是12的话个位为1或0,那就是11,10,10这里可以判断,11的话不如改成1
			}
		}
		s++;
	}
	if(ts[m]<r||r<=0)//天数要改
	{
		s++;
	}
	printf("%d\n",s);
	return 0;
}

四、【深基2.例5】苹果采购

题目描述

现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?

输入格式

输入两个不超过 1 0 9 10^9 109 正整数,分别表示每人分到的数量和同学的人数。

输出格式

一个整数,表示答案。保证输入和答案都在 int 范围内的非负整数。

样例 #1

样例输入 #1

5 3

样例输出 #1

15

代码如下

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>

int main()
{
	long long n, m;
	scanf("%lld%lld",&n,&m);
	
	printf("%lld",n*m);
	return 0;	
} 
//看到10^9时,我其实以为是大数相乘的,但是可能是数据比较弱吧

五、【深基2.例6】字母转换

题目描述

输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。

输入格式

输出格式

样例 #1

样例输入 #1

q

样例输出 #1

Q

代码如下

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>

int main()
{
	//hhh,一看到题目就有一个很不优雅的想法
	char num;
	scanf("%s",&num);

	char n = (char)((int)num - 32);
	printf("%c\n",n);
	return 0;	
} 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值